5

Rails 3.2.13を使用すると、使用するかどうか、またはこれが期待されるかどうかに応じて、異なるアセットパスが取得されますかasset_path?.css.sass.css

たとえばapp/assets/stylesheets/foo.css.sass、スタイルシート ディレクトリに のみがあり、他に何もない場合asset_path、sass バージョンで誤って を使用すると、存在しないファイルが取得されます。

Loading production environment (Rails 3.2.13)
irb(main):001:0> helper.asset_path "foo.css.sass"
=> "/assets/foo-b148cf064a02aef053d2902b6a1fa5a9.css"

asset_pathプレーンで使用するとcss、正しいパスが生成されます。

irb(main):002:0> helper.asset_path "foo.css"
=> "/assets/foo-1b1fbb65d54bbc52b702c0f1d2efcc38.css"

foo-1b1fbb65d54bbc52b702c0f1d2efcc38.cssを実行したときにのみ生成されますrake assets:precompile。異なるハッシュ値がどこから来たのか誰か知っていますか?

4

1 に答える 1

0

クイックアンサー:コンパイルされたファイルの最新の mtime からハッシュ値が生成されると思います。

長い答え:私は掘り下げて確認できませんが、このハッシュタイプの文字列は、コンパイルするすべてのファイルの最新の mtime から生成されることを読んだと思います。

したがって、私の推測では、foo.css は foo.css.sass よりも新しいため、プリコンパイル時に mtime が優先されます。

さらに掘り下げたい場合はdigest_path、 内のメソッドに追跡しましたdigest_for

于 2013-11-09T20:48:12.040 に答える