Спасибо Рассвету за то, что он включился после всего этого времени!С тех пор я понял это, но забыл, что опубликовал здесь об этом.
У меня есть пользовательский rb-файл, на который я ссылаюсь, когда запускаю sass через командную строку - вот так:
sass --update sass:css -r file_mod.rb
в file_mod.rb, у меня есть следующая функция ruby, которая делает свое дело:
require 'sass'
module GETMODINT
def file_url(staticFilePath,staticHost,filePath)
assert_type filePath, :String
filePath = filePath.value #get string value of literal
staticFilePath = staticFilePath.value
staticHost = staticHost.value
modtime = File.mtime(filePath).to_i
#Sass::Script::Number.new(modtime)
fileBaseName = File.basename filePath, '.*'
fileDir = File.dirname(filePath).sub(staticFilePath,'')
fileExt = File.extname(filePath)
path = "url('#{staticHost}#{fileDir}/#{fileBaseName}.#{modtime}#{fileExt}')"
return Sass::Script::String.new(path)
end
Sass::Script::Functions.declare :modInt, [:filePath]
end
module Sass::Script::Functions
include GETMODINT
end
Затем, в sass mixin, я просто ссылаюсь на функцию file_url, передавая ей параметры, необходимые для построениярезультат:
@mixin backgroundImage($path, $position:0 0, $repeat:no-repeat) {
background: {
image:file_url($staticFilePath,$staticHost,$path);
position:$position;
repeat:$repeat;
}
}
В моем случае я использую его для построения пути фонового изображения CSS.Должны быть легко изменены в соответствии с другими целями.