使用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
。有谁知道不同的哈希值来自哪里?
答案 0 :(得分:0)
快速回答:我认为哈希值是从已编译文件的最新mtime生成的。
答案很长:我挖了一遍并且无法确认,但我相信我已经读过这个哈希类型的字符串是从所有文件的最新mtime生成的(s)你想编译。
所以我的猜测是foo.css比foo.css.sass更新,所以mtime在预编译时获胜。
如果您想进一步深入研究,我已在digest_for
内跟踪digest_path
方法。