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

时间:2015-07-24 02:20:40

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

在我的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时包含图像的真实资产路径 即可。它找不到带有缩略图的文件名。

3 个答案:

答案 0 :(得分:1)

预编译图片资源时,需要使用asset-url帮助程序访问它们,请尝试:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

只需将此用作背景属性:

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