如何在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

上一篇: How to reference images in CSS within Rails 4

下一篇: How to navigate in large project in VIM