在section 2.2.2, "CSS and Sass"中,我被告知將image-url('delete.png')
放在我的菜單中。所以我有。sass-rails資產管道:錯誤地生成圖像路徑; `url(/images/blah.png)`而不是`url(/assets/blah.png)`
但是,生成CSS像
background-image: url(/images/delete.png)
,而不是說我告訴無處不應該發生,正確的和顯而易見的事情的東西,
background-image: url(/assets/delete.png)
什麼。哎呀。
我花了幾天的時間試圖弄清楚這是從哪裏來的。
這是a gist of relevant settings導致此行爲。這裏是a gist of the same files in an earlier version of our code base(在我們實施了資產管道之後,它實際上在這種令人沮喪的行爲出現之前實際工作了大約一週)。你能發現差異嗎?你能想到的任何其他文件可能會導致這種情況?
注
- 我們特意使用
sass-rails
一個老版本,因爲在預編譯的新版本是導致Stack level too deep!
錯誤。 - 我們正在使用指南針。在解決方法
因爲實際上故障排除的資產管道還挺吮吸
兩個hackish的嘗試。
1:將圖像/影像
我試圖只是所有圖像移動到public/images
,並添加作爲負載路徑。這在dev中可用(圖像可以在/assets
或/images
下訪問),但是對於生產的預編譯只會將指紋圖像置於/assets
(obvs),所以當sass-rails放入url(/imagse/delete-120398471029384102364.png)
時,找不到它。
2:製作/公共/圖像的符號鏈接到/公/資產
這將在生產中可能的工作,但在發展中/資產文件夾不存在,所以url(/images/delete.png)
指令導致unfound圖像。
你有沒有嘗試過以下方法:'asset_path'delete.png''? – ccyrille
這將是'asset-url('delete.png',image)'。是的,我試過了。正如人們所希望的那樣,'image-url('delete.png')'只是簡寫。他們有完全相同的行爲。 – chadoh
如何使用.sass.erb文件並使用<%= asset_path('delete.png')%>?雖然它仍然是一種解決方法,但是如果sass-rails出現故障,可能值得嘗試診斷。 – Chris