2011-10-04 64 views
7

我收到以下错误:Rails 3.1不预编译未被CSS引用的图像?

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目录。

奇怪的是,在SCSS中使用image-url()引用的所有资产都正常工作。为什么在使用image_tag时未对此图像报告进行预编译?

+0

你在使用Rails 3.1.1或3.1.0吗? – Christos

+0

我在轨道上3.1.1 – Andrew

+0

我在此上添加+1。我在Rails 3.1.3上,并且遇到同样的问题。我即将准备好冲击资产管道。 –

回答

0

我和image_tag有同样的问题。我通过使用实时编译解决了问题。

在production.rb

  • config.assets.compile =真
+1

很好,除非我的部署环境暂时不能进行实时编译,否则这将工作。所以不幸的是,这不是一个选项。 – Andrew

+1

这是一种解决方法,因此可以在一个紧迫的环境中工作 - 但如果您关注性能(并且让我们面对它 - 在生产中,*您担心性能*),它仍然不应该在生产中真正开启。 –

2

如果你有assets.digest选项启用,这将在名称的末尾,并因此增加一个哈希对该文件的静态引用将不再起作用,请更改任何静态引用的资产,以便它们使用辅助方法。

+0

对于它的价值,这似乎对我有帮助。不知何故,在生产模式下启用摘要最终使服务器更可靠地提供资产。尽管如此,我仍然想冲击资产管道。 –

相关问题