在我的应用程序中,用户可以上传他们的徽标以显示在他们的个人资料页面上(使用 Carrierwave + s3)。
在我的本地应用程序上,图像路径是这样的:https ://s3.amazonaws.com/iemarkt/uploads/user/logo/squaredeye_336x336.jpg
但是在我的 Heroku 部署的应用程序上,图像路径是“/assets/”,这会导致错误并且不允许用户上传图像。
每当我尝试在我的 Heroku 应用程序上使用 Carrierwave + s3 上传文件时,我都会收到此错误“我们很抱歉,但出了点问题。”,查看我的日志,我看到了这个错误:
2012-08-20T21:18:56+00:00 app[web.1]: Started GET "/assets/" for 24.90.124.181 at 2012-08-20 21:18:56 +00002012-08-20T21:18:56+00:00 app[web.1]:2012-08-20T21:18:56+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets"):
我的 store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/"
我在我的 production.rb 中取消了这条线(我读到 Heroku 使用 Nginx,我不知道我是否需要做其他事情才能让 Nginx 工作。)
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
我真的不知道为什么路径不通向我的 s3 帐户。
这是我的应用