正如有人在評論中提到的那樣,向資產路徑附加哈希是資產管道的默認部分。
在生產中,Rails的插入一個MD5指紋爲每個文件名,以便該文件是由Web瀏覽器
您可以在資產管道here閱讀更多關於指紋緩存。 Rails使用Sprockets來編譯資產。指紋是作爲鏈輪過程的一部分。
您可以使用鏈輪'find_asset
方法,將資源傳遞到邏輯路徑以獲取Sprockets::BundledAsset
實例。例如
[1] pry(main)> Rails.application.assets.find_asset('application.js')
=> #<Sprockets::BundledAsset:0x3fe368ab8070 pathname="/Users/deefour/Sites/MyApp/app/assets/javascripts/application.js", mtime=2013-02-03 15:33:57 -0500, digest="ab07585c8c7b5329878b1c51ed68831e">
您可以致電digest_path
這個對象上得到它的MD5
和附加到資產。
[1] pry(main)> Rails.application.assets.find_asset('application.js').digest_path
=> "application-ab07585c8c7b5329878b1c51ed68831e.js"
有了這些知識,你可以很容易地創建一個幫助從您的.js.erb
文件內歸還digest_path
任何資產在你的應用程序,並調用這個幫手。
它是在生產ENV一個默認的[資產管道指南](http://guides.rubyonrails.org/asset_pipeline.html) –
在你的json響應中使用asset_path怎麼樣? – mathieugagne