2016-02-19 65 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