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

Ruby on rails 不同的资产摘要取决于css.sass或css,ruby-on-rails,asset-pipeline,Ruby On Rails,Asset Pipeline,使用Rails 3.2.13,我会根据是否使用.css.sass或仅仅使用.css获得不同的资产路径 例如,如果我的样式表目录中只有一个app/assets/stylesheets/foo.css.sass,而没有其他内容,如果我在sass版本中意外使用了asset\u路径,我会得到一个不存在的文件: Loading production environment (Rails 3.2.13) irb(main):001:0> helper.asset_path "foo.css.sass"

使用Rails 3.2.13,我会根据是否使用
.css.sass
或仅仅使用
.css
获得不同的
资产路径

例如,如果我的样式表目录中只有一个
app/assets/stylesheets/foo.css.sass
,而没有其他内容,如果我在sass版本中意外使用了
asset\u路径,我会得到一个不存在的文件:

Loading production environment (Rails 3.2.13)
irb(main):001:0> helper.asset_path "foo.css.sass"
=> "/assets/foo-b148cf064a02aef053d2902b6a1fa5a9.css"
使用
asset\u path
和简单的
css
生成正确的路径

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

只有
foo-1b1fbb65d54bbc52b702c0f1d2efcc38.css在我运行
rake资产:预编译时生成。有人知道不同的散列值来自哪里吗?

快速回答:我认为散列值是从编译文件的最新mtime生成的

详细回答:我仔细研究了一下,无法确认,但我相信我已经读到,此哈希类型字符串是从所有要编译的文件的最新mtime生成的

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

如果您想深入研究它,我已经从内部跟踪到了一个
digest\u path
方法