Rails 3.1不预编译CSS没有引用的图像?

时间:2011-10-04 17:39:40

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

我收到以下错误:

Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Photos#edit

Showing .../app/views/photos/_form.html.haml where line #49 raised:

taxonomy/focus-building.jpg isn't precompiled

Extracted source (around line #49):

46:                             = focus.code
47:                         .tooltip
48:                             %span.name= focus.name
49:                             = image_tag("taxonomy/focus-#{focus.code.downcase.dehumanize}.jpg")
50:                 / Help Overlay
51:                 .help
52:                     %a.overlay{:href=>"#", :rel=>'#help-focus'} Learn more about focus

此图片文件位于app/assets/images/taxonomy/focus-building.jpg。我已经运行rake assets:precompile RAILS_ENV=production,但据我所知,图像没有被复制到public/assets目录。

奇怪的是,使用image-url()在SCSS中引用的所有资产都可以正常工作。为什么在使用image_tag

引用时,此图像报告未进行预编译

2 个答案:

答案 0 :(得分:2)

如果启用了assets.digest选项,则会在名称末尾添加一个哈希值,因此对该文件的静态引用将不再起作用,更改任何静态引用的资产,以便它们使用帮助程序方法。

答案 1 :(得分:0)

我遇到了与image_tag相同的问题。我通过使用实时编译解决了问题。

在production.rb

  • config.assets.compile = true