在Rails 3.2.22.5中,指纹摘要不附加图像路径

时间:2017-11-21 12:45:07

标签: ruby-on-rails ruby-on-rails-3 sass asset-pipeline precompile

我在CSS部分中声明了一个css类,名为' _city-images.css.scc' :

.city-art {
  background: url(image-path('cities-images.png')) no-repeat;
}

问题是在通过资产编译资产之后:预编译。由'图像路径生成的路径'指纹不会生成助手。

生成的路径为:https://abc.mysite.com/assets/cities-images.png 但它应该是这样的:https://abc.mysite.com/assets/cities-images-XXXXXXXXXXXXXX.png

在您提出问题之前,问题仅出在.css.scss文件中。其他文件中的所有路径都使用指纹生成。 在production.rb:config.assets.digest = true

中也启用了手指打印

我经常搜索,但无法找到有效的解决方案。

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

如果您尚未使用precompile数组,则可以在{{1}中添加单个样式表和js(不包括部分scss文件,因为部分scs文件包含在其他scss文件中,应该包括btw) }}:

config/initializers/assets.rb

注意:始终指定以.js或.css结尾的预期编译文件名,即使您要将Sass或CoffeeScript文件添加到预编译数组中。

对于您的情况,如果您的部分Rails.application.config.assets.precompile += %w( admin.js admin.css ) 导入其他scss _city-images.css.scss,则只需在base.css.scss数组中加入( base.css )

您可能还希望查看Precompiling Assets

上的官方指南

答案 1 :(得分:0)

最后花了几个小时后,我解决了这个问题:

.city-art {
  background: url(asset-path('cities-images.png', image)) no-repeat;
}

需要使用资产路径,带参数图像。

如果有人遇到类似问题,请检查此问题:asset_path in scss file rails