SASSでファイル・リビット・キャッシュ・バスト処理を行う方法はありますか?この解答でコンパスを使用することは可能です: SASS Image CSS Cache Busting (via Compass)キャッシュ・バスト処理
しかし、私はSASSを使ってこれを行う方法はありませんでした。 SASSにファイル変更情報をファイルシステムから取得させ、イメージパスに追加する方法はありますか?
私はクエリ文字列を追加しない方がよいでしょう。これはより良い方法論だと思います。
SASSでファイル・リビット・キャッシュ・バスト処理を行う方法はありますか?この解答でコンパスを使用することは可能です: SASS Image CSS Cache Busting (via Compass)キャッシュ・バスト処理
しかし、私はSASSを使ってこれを行う方法はありませんでした。 SASSにファイル変更情報をファイルシステムから取得させ、イメージパスに追加する方法はありますか?
私はクエリ文字列を追加しない方がよいでしょう。これはより良い方法論だと思います。
この時間の後にキミをするための洞窟!私はこれを考え出したが、私はそれについてここに投稿して忘れてしまった。
私は、コマンドラインを介してSASSを実行したときに、私が参照するカスタムRBファイルを持っている - そうのように:
:file_mod.rbでsass --update sass:css -r file_mod.rb
、私はトリックを行い、次のルビー機能を持っています
@mixin backgroundImage($path, $position:0 0, $repeat:no-repeat) {
background: {
image:file_url($staticFilePath,$staticHost,$path);
position:$position;
repeat:$repeat;
}
}
0123:
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のミックスインでは、私は単にそれを、それは結果を構築するために必要なパラメータを渡し、file_url関数を参照します
私の場合、私はそれを使用してCSSの背景画像パスを構築しています。他の目的に合わせて簡単に修正する必要があります。
カスタムサス機能を定義することによって、これが本当に可能なように見えます。http://www.seancolombo.com/2010/07/28/how-to-make-and-use-a-custom-sass-function /でも、私はRubyには慣れていません。コマンドラインでカスタム関数を指定する必要はなく、引き続きSASS watchコマンドを使用してください。 – elleeott
あなたは質問文字列を避けることについて正しいです - 無視することができます(http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/)。あなたがルビーとおそらくレールを使用しているなら、あなたはv3を使っていますか? Railsのアセットパイプラインはすべてそれを行います。そうでなければスプロケットが役立つかもしれません。イメージ参照を置くと、url()ではなくimage-url()を使用してパスが計算されます – Dawn