使用capistrano从rails 3升级到rails 4,现在图像资产没有显示。为什么?

时间:2013-06-27 19:34:12

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

从Rails 3升级到4,现在图像资产未在生产中显示。似乎javascript和css文件正常工作。

我已经尝试了https://github.com/capistrano/capistrano/wiki/Upgrading-to-Rails-4的步骤,但它没有帮助。

我尝试删除shared / assets文件夹中的json文件和yml文件,但部署完成后仍然没有显示图像。

如果我尝试在新标签中查看网站上的图片,我会收到“您要查找的页面不存在”。错误。

我试过这个:

Bundler.require(:default, Rails.env)

和此:

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

在config / application.rb文件中。都没有工作。

这是我在config / environments / production.rb文件中的内容:

config.serve_static_assets = false
config.assets.js_compressor = :uglifier
config.assets.compile = false
config.assets.digest = true
config.assets.version = '1.0'

Capfile:

load 'deploy'
load 'deploy/assets'
load 'config/deploy'

我做错了什么?如何让图像显示在制作中?

2 个答案:

答案 0 :(得分:1)

Rails 4不再创建没有摘要的资产。因此,如果您直接引用资源(例如图片)(例如/assets/whatever.jpg)而没有网址中的摘要,则可能会获得404。

non-stupid-digest-assets gem将通过创建非摘要资产来解决此问题:https://github.com/alexspeller/non-stupid-digest-assets/tree/master

答案 1 :(得分:0)

这都是我的坏事......我还没有使用资产管道助手,现在它正在咬我。当我切换到image_tag(" whatever.jpg")时,它正在工作......