我将应用程序从 3.2.12 切换到 4.0.0.rc1。当我后来在生产中查看它时,背景图像已经消失了。我的其余图像资产被毫无问题地获取。
在我的日志中,我看到所有成功渲染的图像都有一个摘要,如下所示:
2013-05-12T19:57:05.856277+00:00 heroku[router]: at=info method=GET path=/asset/explore-9ec2a1cfd4784133755637f6ef6d5673.png host=xxx.herokuapp.com fwd="69.140.148.75" dyno=web.1 connect=3ms service=5ms status=200 bytes=4064
而我不成功的背景图片上没有摘要,加上一个 404 响应代码:
2013-05-12T19:57:05.736354+00:00 heroku[router]: at=info method=GET path=/assets/background.png host=xxxx.herokuapp.com fwd="69.140.148.75" dyno=web.1 connect=2ms service=7ms status=404 bytes=728
在 production.rb 文件中,有一个配置行可以将其用于缓存目的:
# Generate digests for assets URLs
config.assets.digest = true
这是背景的 CSS:
body {
background-image: url('background.png');
background-attachment: fixed;
background-position: 100% 100%;
background-repeat: no-repeat;
}
我得出的结论是,我的 CSS 文件正在尝试获取一个不存在的图像 url,因为它引用的是普通资产(“background.png”),末尾没有哈希。这只是 CSS 中的图像的问题;我的 .erb 文件中引用的所有图像都很好。那么如何在我的 CSS 中引用这个资产而不用硬编码摘要呢?有什么解决方法吗?
谢谢阅读。