rails 4资产管道供应商资产图像未进行预编译

时间:2013-01-07 11:13:47

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

我正在使用rails 4& ruby 1.9.3用于我的应用程序和fancybox2-rails gem,但资产管道存在一般问题。如果我为预编译运行rake task,那么除vendor/assets/images../gems/ruby-1.9.3-p327/gems/fancybox2-rails-0.2.1/vendor/assets/images中的图片外,一切都很好。来自这两个文件夹的图像没有被预编译,最终我遇到了与不存在的图像的死链接的问题。有什么建议吗?

3 个答案:

答案 0 :(得分:78)

默认情况下,图片仅包含在app / assets文件夹中。因此解决方案是将此行添加到config / application.rb

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)

答案 1 :(得分:9)

听起来Sporker无法自动加载来自供应商/资产/图像的图像。

  

2.2资产组织   管道资产可以放置在三个位置之一的应用程序内:app / assets,lib / assets或vendor / assets。

     

app / assets适用于应用程序拥有的资产,例如自定义图像,JavaScript文件或样式表。

     

lib / assets适用于您自己的库代码,它们并不真正适合应用程序的范围或跨应用程序共享的库。

     

vendor / assets适用于外部实体拥有的资产,例如JavaScript插件和CSS框架的代码

根据来自guides.rubyonrails.org的描述,我认为他们没有意图忽略供应商/资产/图像。

所以我刚刚添加了以下内容:

#config/application.rb
config.assets.paths << Rails.root.join("vendor", "assets", "images")

而且,我解决了我的问题。 我希望这对你有用。

答案 2 :(得分:6)

对于我的Rails 4.2.x项目,我刚将供应商图片移至vendor/assets/images并将其添加到application.rb

config.assets.precompile += %w(vendor/assets/images/*)

在开发和生产方面做得很好。