2013-11-04 15 views
5

使用Rails 3.2.13根據我是否使用.css.sass或只有.css,我得到了不同的資產路徑asset_path這是預期的嗎?取決於css.sass或css的不同資產摘要

例如,如果我只有在我的樣式表目錄中,並沒有別的一個app/assets/stylesheets/foo.css.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產生正確的路徑。當我運行rake assets:precompile

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

只有foo-1b1fbb65d54bbc52b702c0f1d2efcc38.css產生。有誰知道不同的哈希值來自哪裏?

回答

0

快速回答:我認爲散列值是從編譯文件的最新mtime生成的。

長答案:我挖了一遍,不能確認它,但我相信我已經讀過,這個哈希類型的字符串是從你想編譯的所有文件的最新mtime中生成的。

所以我的猜測是foo.css比foo.css.sass更新,所以mtime會在預編譯時獲勝。

如果您想進一步深入研究,我已經從digest_for中將其跟蹤到digest_path方法。