2016-02-19 66 views
1

我SCSS了文件數樣式背景圖片:軌道4圖像的URL SCSS助手返回錯誤的圖片路徑

> grep -r image-url app 
app/assets/stylesheets/controls/player.css.scss: background-image: image-url('armchair.jpg'); 
app/assets/stylesheets/controls/cards.css.scss: background-image: image-url('cards.gif'); 
app/assets/stylesheets/play_section.css.scss: background: image-url('table-grey.png') no-repeat center; 

他們使這樣的CSS屬性分別爲:

/assets/armchair.jpg 
/images/cards.gif <-- that one is wrong, it obviously returns 404 
/assets/table-grey.png 

有什麼不對?我搜索過cards.gif整個項目,發現的唯一行:

> grep -r cards.gif app lib 
app/assets/stylesheets/controls/cards.css.scss: background-image: image-url('cards.gif'); 

回答

2

Rails會使用/assets/yourimage.ext與資產路徑幫手。如果在資產文件夾中找不到圖像,它將回退到使用/images/yourimage.ext

在資產文件夾中是否有此圖像?如果不嘗試添加它並在app/assets/images/cards.gif下並檢查它是否有效。

另外,還要確保你清楚你的tmp/cache文件夾使用rake tmp:cache:clear

+0

我仔細檢查過該cards.gif存在於應用程序/資產/ images文件夾。此外,如果我將/images/cards.gif更改爲/assets/cards.gif,並在Firebug中顯示樣式,則圖像會出現 – zuba

+2

您可以嘗試清除tmp/cache文件夾'rake tmp:cache:clear'另外,它會有所幫助你可以添加一些調試,通過打印出Rails.application.config.assets.paths和asset_path('cards.gif')' –

+0

Yes!來查看你的asset_path在視圖中的位置。耙tmp:緩存:明確幫助!我接受。你能否將評論中的建議轉移到答案上? – zuba