【问题标题】:Rails 4.1 assets pipeline production, background image path different in two seperate css files after precompileRails 4.1资产管道生产,预编译后两个单独的css文件中的背景图像路径不同
【发布时间】: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


【解决方案1】:

将此配置放入您的 production.rb

config.action_controller.relative_url_root = '/your-sub-uri'

这会将 sub-uri 添加到 3rd 方 gem 资产中。

我从here得到这个配置

【讨论】:

    猜你喜欢
    • 2013-05-08
    • 1970-01-01
    • 2013-07-30
    • 2012-12-21
    • 1970-01-01
    • 2013-05-28
    • 2016-05-04
    • 2014-03-08
    • 1970-01-01
    相关资源
    最近更新 更多