【问题标题】:Asset Pipeline problems on certain images in Rails 4.2 after upgrade from 3.2从 3.2 升级后 Rails 4.2 中某些图像的资产管道问题
【发布时间】:2015-07-24 02:20:40
【问题描述】:

在我的 Rails 4.2.3 应用程序中,我使用名为 Gritter 的 jQuery 插件向浏览器传递消息。

但是,在最近升级到 4.2.3 之后,Gritter 的背景图像不再显示。 CSS 是:

.gritter-item {
    display:block;
    background:url(/assets/gritter.png) no-repeat left -40px;
    color:#eee;
    padding:2px 11px 8px 11px;
    font-size: 11px;
    font-family:verdana;
}

Gritter 位于:

/vendor/assets/javascripts/jquery-plugins/Gritter/

并且在其下有cssimages 目录。

所以url(/assets/gritter.png) 类型路径分配不起作用。他们最初是url(../images/gritter.png)。但我试着回到那个状态,它也不起作用。

我在config/initializers/assets.rb

Rails.application.config.assets.precompile += %w( ie-spacer.gif gritter.png gritter-close.png )

在 Rails 4 中,资产管道发生了一些变化,我不知道是什么。

更新

我可以在以下位置看到指纹图像:

/public/assets/jquery-plugins/Gritter/images

所以问题不在于它们的包含。问题是这个插件的 CSS,即使我将它包含在我的主要 application.scss 文件中,拒绝在 CSS 编译时包含图像的真实资产路径 。它找不到指纹文件名。

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-4 asset-pipeline


【解决方案1】:

当你预编译你的图片资源时,你需要使用asset-url helper 来访问它们,所以试试:

background: asset-url('gritter.png') no-repeat left -40px;

【讨论】:

  • 这很好用。此页面上的其他答案对我不起作用。这立即奏效了。非常感谢!
【解决方案2】:

在背景之间放一个空格:url(/assets/gritter.png) no-repeat left -40px;

例子: 背景:url(/assets/gritter.png) no-repeat left -40px;

【讨论】:

    【解决方案3】:

    只需将其用于您的背景属性:

    background: image-url("gritter.png") no-repeat left -40px;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 2013-05-12
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      相关资源
      最近更新 更多