2013-04-10 69 views
1

我有一个CSS位于公共/文件夹中的轨道。我想在css中找到app/assets/images /文件夹中的图像作为背景。下面的代码似乎不工作:如何在Rails中的公用文件夹中获取图像URL?

background: url("bg-noise.png"); 

这通常用于应用程序/资产/样式表/文件夹内的CSS。无法使其在公用文件夹内工作。

回答

0

你有两种选择。如果可以重命名文件,并使用与SCSS资产管道,则样式重命名为.css.scss,并与image-url SCSS助手代替

background: url("bg-noise.png"); 

background: image-url("bg-noise.png"); 

它会自动解析路径。

另一种解决方案是将文件重命名为.css.erb,您将能够在文件内使用ERB代码。

background-image: url(<%= asset_path 'bg-noise.png' %>) 

最后的解决方案是硬编码路径。

background: url("/assets/bg-noise.png"); 

我鼓励您使用第一个选项。

1

您更好地使用此方法找到你的图像

background-image: url(<%= asset_path 'bg-noise.PNG' %>) 

,如果你有一个图片文件夹使用:

background-image: url(<%= asset_path '/images/bg-noise.PNG' %>) 
+0

这项工作将公共/ mailer.css?我的意思是你可以把erb代码放在css里面吗? – 2013-04-10 09:58:20

+0

看看这个文档。你应该自己修复http://guides.rubyonrails.org/asset_pipeline.html – 2013-04-10 10:05:37

+0

你必须在新的rails应用中使用app/assets文件夹。铁轨不在公共/资产中搜索。 – 2013-04-10 10:11:06

0

如果u检查该元素和花费的标签背景:网址();并寻找图像的背景图像:url('localhost:3000/assets/bg-noise.png');

所以为了避免这种情况,使用

{ 
background: url('../bg-noise.png'); 
} 
0
background: url('/assets/bg-noise.png');