从 3.2 升级后 Rails 4.2 中某些图像的资产管道问题

Asset Pipeline problems on certain images in Rails 4.2 after upgrade from 3.2

在我的 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 编译后的图像。找不到指纹文件名。

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

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

当您预编译您的图像资产时,您需要使用 asset-url 帮助程序访问它们,因此请尝试:

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

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

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