[英]Rails 4.1 image url's still calling uncompiled assets
因此,我大部分時間都將Rails網站投入生產,但是我意識到我缺少一些圖像。 我查看了我的預編譯的css文件,圖像url直接像url(/assets/gototop.png)
一樣調用圖像,但由於我的圖像現在像gototop-6c119f88349ddd550e3efcf5bbefe1ad.png
,因此找不到該圖像。
如何使CSS指向預編譯的圖像文件?
更新:也正如鏈接文件中所述,我意識到我可以使用asset_path方法,但是不幸的是,我使用的是scss,我不能只是將.erb添加到文件末尾...似乎rails不喜歡與多個編譯器一起使用。 (我試過了)
這是由資產指紋識別引起的常見問題(不僅僅是Rails 4.1問題)
解決該問題的方法是在CSS中使用預編譯器(Rails隨SASS一起提供 )。 預編譯器基本上意味着您可以將CSS文件像erb
一樣對待-使用某些幫助程序和變量:
#app/assets/stylesheets/application.css.sass
body
background: asset_url("/layout/gototop.png")
asset_url
(似乎現在稱為asset-url
)基本上允許您通過指紋名稱來調用資產
根據我們的討論,您還需要使用rake assets:precompile RAILS_ENV=production
。 在控制台中觸發此命令后,它按預期工作
您必須先通過ERB執行以下代碼:
步驟1重命名 :將RAILS_ROOT/app/assets/stylesheets/application.css.sass
更改為RAILS_ROOT/app/assets/stylesheets/application.css.sass.erb
第2步 : 添加ERB標簽 :更改資產路徑以使用erb標簽
body
background: <%= asset_url("/layout/gototop.png") %>
要驗證它是否有效,請參閱gototop.png
的文件名,它應該類似於gototop-029908d2eb2fd4cb3a2f538c6acbd73d.css
。
如果不是,請在github上使用示例應用發回,以便我們可以幫助您調試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.