从 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/
下面还有 css
和 images
个目录。
因此 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;
在我的 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/
下面还有 css
和 images
个目录。
因此 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;
当您预编译您的图像资产时,您需要使用 asset-url
帮助程序访问它们,因此请尝试:
background: asset-url('gritter.png') no-repeat left -40px;
只需将其用作您的背景 属性:
background: image-url("gritter.png") no-repeat left -40px;