簡體   English   中英

Rails 4.1圖像URL仍在調用未編譯的資產

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM