Rails4:image_url不在scss中生成摘要

sis*_*ssy 9 ruby-on-rails asset-pipeline ruby-on-rails-4

我无法理解为什么我的css文件没有使用辅助方法将摘要附加到我的资产 image_url

我的资产已正确预先推荐,文件确实包含摘要.我也可以手动访问它们(使用消化的URL).最奇怪的是,它一开始就有效.

这是我的配置:

  config.assets.js_compressor = :uglifier
  config.assets.compile = false
  config.assets.digest = true
  config.assets.version = '1.0'
  config.serve_static_assets = false #also tried true
Run Code Online (Sandbox Code Playgroud)

这是我的application.css:*= require_tree.

这是common.scss文件,用于包含图像:

body{
    background: image_url('bg.jpg');
    font-family: 'Lato', sans-serif;
    overflow-x: hidden;
}
Run Code Online (Sandbox Code Playgroud)

图像以及样式表位于资产/图像和资产/样式表中的子文件夹中.

在这里我的宝石:

gem 'rails', '4.0.0'
gem 'sass-rails', '~> 4.0.0'
Run Code Online (Sandbox Code Playgroud)

我正在使用capistrano部署,但我不认为这是一个与capistrano相关的问题,资产编制得很好.

编辑 到目前为止我(尝试失败)的尝试:

image-url('image.jpg'); -> http://www.mydomain.it/images/image.jpg
image_url('image.jpg');    -> same as above
url(image-path('header.jpg'));  -> http://www.mydomain.it/images/image.jpg
asset-url('image.jpg', image); -> http://www.mydomain.it/image.jpg
Run Code Online (Sandbox Code Playgroud)

问题仍然存在:资产已编译但未经摘要请求.

编辑

关注这个问题Rails 4 image-path,image-url和asset-url不再适用于SCSS文件我移动了我的资产并使用asset-url的组合并将我的资产放在/ public文件夹中,背景图像正常工作,甚至虽然问题仍然存在,因为应用程序没有使用图像的带时间戳的版本.所以只有一个(不是好的,也不是坏的)解决方法.

Len*_*ran 4

应该使用asset_path. 另外,它需要在 ERB 标签下运行,因为 SCSS 不编译 asset_path。重命名common.scsscommon.scss.erb

.body { background-image: url(<%= asset_path 'bg.jpg' %>) }
Run Code Online (Sandbox Code Playgroud)

在这里阅读更多内容。