如何在Rails 4中引用CSS中的图像
Heroku上的Rails 4有一个奇怪的问题。 当图像被编译时,它们会添加哈希值,但是从CSS内部引用这些文件没有调整正确的名称。 这是我的意思。 我有一个名为logo.png的文件。 然而,当它显示在heroku上时,它被视为:
/assets/logo-200a00a193ed5e297bb09ddd96afb953.png
但是CSS仍然指出:
background-image:url("./logo.png");
结果:图像不显示。 有人遇到这个? 这怎么解决?
链轮与萨斯一起有一些漂亮的助手可以用来完成工作。 如果您的样式表文件扩展名为.css.scss
或.css.sass
则链轮将仅处理这些助手。
图像特定帮手:
background-image: image-url("logo.png")
不可知论帮手:
background-image: asset-url("logo.png", image)
background-image: asset-url($asset, $asset-type)
或者,如果您想将图像数据嵌入到css文件中:
background-image: asset-data-url("logo.png")
不知道为什么,但只为我工作的是使用asset_path而不是image_path ,即使我的图像位于assets / images /目录下:
例:
app/assets/images/mypic.png
在Ruby中:
asset_path('mypic.png')
在.scss中:
url(asset-path('mypic.png'))
更新:
想通了 - 这些资产助手来自sass-rails gem(我已经安装在我的项目中)。
在Rails 4中,您可以像这样轻松地引用位于.SCSS
文件中assets/images/
中的assets/images/
:
.some-div {
background-image: url(image-path('pretty-background-image.jpg'));
}
当您在开发模式( localhost:3000
)中启动应用程序时,您应该看到如下所示的内容:
background-image: url("/assets/pretty-background-image.jpg");
在生产模式下,您的资产将具有缓存助手号码:
background-image: url("/assets/pretty-background-image-8b313354987c309e3cd76eabdb376c1e.jpg");
链接地址: http://www.djcxy.com/p/78011.html