首页 文章

Carrierwave / fog正在将文件上传到S3,但应用程序仍在尝试使用本地路径访问图像

提问于
浏览
1

我知道这是一个广泛的问题,而且我咬的东西比我可以咀嚼第一次尝试使用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 回答

  • 2

    我不清楚你想要实现什么 .
    但是现在我有两个想法:

    • 对于CDN中的资产主机,您可以看一下:https://devcenter.heroku.com/articles/cdn-asset-host-rails31

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

  • 0

    我遇到了同样的问题 . 在我的Carrierwave Initializer中,我将 host 设置为 s3.amazonaws.com ,但当我删除该行时,url开始工作 .

    我希望这可以帮助你解决问题,我打了几个小时!

  • 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

  • -3

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

    给它一瞥,看看它是否有帮助 .

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

相关问题