我知道这是一个广泛的问题,而且我咬的东西比我在轨道应用程序上的第一次刺伤要多一点,但我在这里。
我尝试将图片上传/裁剪添加到基本状态应用。它正好上传图像并使用carrierwave裁剪它们,但是当我开始使用Fog上传到S3时,我遇到了问题。
图片,它的大小不同,似乎最终在S3上很好,但应用程序仍在尝试访问图像为“/assets/uploads/entry/image/65/large_IMG_0035.jpg"
在本地,它只是显示一个损坏的图像,但在Heroku上它打破了整个事情,因为
ActionView :: Template :: Error(uploads / entry / image / 1 / large_IMG_0035.jpg未预编译
heroku错误对我有意义,因为它不应该存在。我已经梳理了应用程序,但不知道是什么迫使这个。我会发布任何人认为会起作用的代码吗?提前谢谢!
澄清:
只是为了澄清,图片上传到S3很好,问题是应用程序试图显示image_url
该应用正在资产管道中使用本地路径,而不是它实际上传到的S3路径。
答案 0 :(得分:2)
我遇到了同样的问题。在我的Carrierwave Initializer中,我将host
设置为s3.amazonaws.com
,但当我删除该行时,网址开始正常工作。
我希望这可以帮助你解决问题,我打了好几个小时!
答案 1 :(得分:0)
我认为此问题与您在视图中访问图片的方式有关。
如果您已按以下方式在字段头像上安装了上传器:
class User < ActiveRecord::Base
mount_uploader :avatar, AvatarUploader
end
您可以在ERB中按如下方式访问它:
<%= image_tag(@user.avatar_url) %>
我还建议观看以下有关该主题的Railscast。
答案 2 :(得分:0)
重读问题,我敢打赌它与使用Herkou的Carrierwave有关。
一目了然,看看它是否有帮助。
https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Make-Carrierwave-work-on-Heroku
答案 3 :(得分:-3)
我不清楚你到底想要达到什么目的 但是现在我有两个想法:
对于CDN中的资产主持人,您可以看一下: https://devcenter.heroku.com/articles/cdn-asset-host-rails31
如果你想让图像成为模型关系的一部分,这是我的粗略想法:
将图像路径放在表格列中。
有关这方面的更多信息,您可以浏览carrierwave github网站。(它有许多文档和教程)