Heroku 上的 Rails 4 有一个奇怪的问题。编译图像时,它们会添加散列,但 CSS 中对这些文件的引用没有调整正确的名称。这就是我的意思。我有一个名为 logo.png 的文件。然而,当它出现在 heroku 上时,它被视为:
/assets/logo-200a00a193ed5e297bb09ddd96afb953.png
但是 CSS 仍然声明:
background-image:url("./logo.png");
结果:图像不显示。有人遇到这个吗?如何解决?
Sprockets 和 Sass 有一些漂亮的助手可以用来完成工作。如果您的样式表文件扩展名为或, Sprockets 只会 处理这些帮助程序。.css.scss``.css.sass
.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")