【发布时间】:2015-01-28 10:17:40
【问题描述】:
我在生产中有一个 rails 4.1.1 应用程序,因为我有一个来自 gem 'fancybox2-rails', '0.2.8' 的 fancybox.css 文件
在 application.css 中我添加了如下文件。
*= require jquery.ui.datepicker
*= require jquery.ui.slider
*= require fancybox
*= require_tree .
*= require_self
我也在另一个 lockbox.css 文件中添加了它,如下所示
*= require jquery.ui.datepicker
*= require jquery.ui.slider
*= require fancybox
在 production.rb 中,我添加了用于像这样额外编译 lockbox.css 文件的配置
config.assets.precompile += %w( lockbox.css )
我的生产环境配置为子目录
www.test.com/v1
www.test.com/v2
问题出在 lockbox.css 文件中,其中背景图片的背景 url 路径在 application.css 和 lockbox.css 中是不同的
例如在 application.css 中
路径正确,v1/assets/my_image.png
但在 lockbox.css
相同的路径编译错误,v1/my_image.png
请解释为什么会发生这种情况以及可以采取什么措施来解决这个问题。
【问题讨论】:
-
您可以尝试删除生产环境中的
tmp/cache/assets目录并再次部署。虽然这不是一个永久的解决方案。 -
我删除了 tmp/cache/assets 文件夹,但现在相对 url 部分没有出现。令我困惑的是,如果我从该站点下载 css 文件,则路径是正确的,例如:v1/assets/image.png。但背景图像未显示,并且在萤火虫中其显示资产未在路径 /assets/image.png 中找到,其中缺少相对 url 路径。
标签: asset-pipeline ruby-on-rails-4.1