1

我知道这是一个广泛的问题,而且我咬得比我能咀嚼的要多一点,以便第一次尝试使用 rails 应用程序,但我在这里。

我尝试将图像上传/裁剪添加到基本状态应用程序。上传图像并使用载波裁剪它们工作得很好,但是当我开始使用 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 路径。

4

4 回答 4

2

我遇到了同样的问题。在我的 Carrierwave Initializer 中,我设置hosts3.amazonaws.com但当我完全删除该行时,url 开始工作。

我希望这可以帮助您解决问题,我为此奋斗了几个小时!

于 2013-06-21T00:10:02.957 回答
0

我相信这个问题与您在视图中访问图像的方式有关。

如果您通过以下方式在字段头像上安装了上传器:

class User < ActiveRecord::Base
  mount_uploader :avatar, AvatarUploader
end

您将在您的 ERB 中访问它,如下所示:

 <%= image_tag(@user.avatar_url) %>

我还建议观看有关该主题的以下 Railscast。

http://railscasts.com/episodes/253-carrierwave-file-uploads

于 2013-04-09T13:15:33.737 回答
0

重读问题,我敢打赌这与使用 Herkou 的 Carrierwave 有关。

看看这个,看看它是否有帮助。

https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Make-Carrierwave-work-on-Heroku

于 2013-04-09T13:56:41.623 回答
-3

我不清楚你到底想达到什么目的。
但现在我有两个想法:

  1. 对于 CDN 中的资产托管,您可以查看以下内容: https ://devcenter.heroku.com/articles/cdn-asset-host-rails31

  2. 如果您希望图像成为模型关系的一部分,这是我的粗略想法:
    将图像路径放在表格列中。有关这方面的更多信息,您可以浏览carrierwave github 站点。(它有许多文档和教程)

于 2013-04-09T04:20:38.673 回答