我知道这是一个广泛的问题,而且我咬的东西比我可以咀嚼第一次尝试使用rails应用程序,但我在这里 .
我尝试将图片上传/裁剪添加到基本状态应用 . 它正好工作上传图像并使用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错误对我有意义,因为它不应该存在 . 我已经梳理了应用程序,但不知道是什么迫使这个 . 我会发布任何人认为会起作用的代码吗?提前致谢!
Clarification:
只是为了澄清,图像上传到S3很好,问题是应用程序试图显示image_url的方式
该应用程序使用资产管道中的本地路径,而不是它实际上传到的S3路径 .
4 回答
我不清楚你想要实现什么 .
但是现在我有两个想法:
对于CDN中的资产主机,您可以看一下:https://devcenter.heroku.com/articles/cdn-asset-host-rails31
如果你想让图像成为模型关系的一部分,这是我的粗略想法:
将图像路径放在表格列中 . 有关这方面的更多信息,您可以浏览carrierwave github网站 . (它有很多文档和教程)
我遇到了同样的问题 . 在我的Carrierwave Initializer中,我将
host
设置为s3.amazonaws.com
,但当我删除该行时,url开始工作 .我希望这可以帮助你解决问题,我打了几个小时!
我相信此问题与您在视图中访问图片的方式有关 .
如果您已按以下方式在字段头像上安装了上传器:
您可以在ERB中访问它,如下所示:
我还建议观看以下关于该主题的Railscast .
http://railscasts.com/episodes/253-carrierwave-file-uploads
重读问题,我敢打赌它与使用Herkou的Carrierwave有关 .
给它一瞥,看看它是否有帮助 .
https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Make-Carrierwave-work-on-Heroku