不同的资产摘要取决于css.sass或css

时间:2013-11-04 22:47:10

标签: ruby-on-rails asset-pipeline

使用Rails 3.2.13我为asset_path获取了不同的资产路径,具体取决于我是否使用.css.sass或仅.css这是预期的?

例如,如果我的样式表目录中只有app/assets/stylesheets/foo.css.sass而没有其他内容,如果我不小心使用带有sass版本的asset_path,我会得到一个不存在的文件:

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。有谁知道不同的哈希值来自哪里?

1 个答案:

答案 0 :(得分:0)

快速回答:我认为哈希值是从已编译文件的最新mtime生成的。

答案很长:我挖了一遍并且无法确认,但我相信我已经读过这个哈希类型的字符串是从所有文件的最新mtime生成的(s)你想编译。

所以我的猜测是foo.css比foo.css.sass更新,所以mtime在预编译时获胜。

如果您想进一步深入研究,我已在digest_for内跟踪digest_path方法。