【问题标题】:'No route matches' with paperclip and S3 on HerokuHeroku上的回形针和S3“没有路线匹配”
【发布时间】:2010-09-29 03:21:15
【问题描述】:

在我的本地开发系统上设置回形针以使用 S3 非常简单。但是,我无法让它在 Heroku 上运行。

文件上传成功:

[paperclip] Saving attachments.
[paperclip] saving photos/2/small.jpg
[paperclip] saving photos/2/original.jpg

但是,尝试链接到上传的视图会出现路由错误:

ActionController::RoutingError (No route matches "/photos/small/missing.png" with {:method=>:get}):

注意它是如何使用“missing”作为文件名的,并使用“.png”作为扩展名,即使文件是“.jpg”。

根据我找到的各种博客文章和教程(包括 Heroku 的文档),我尝试了多种 :url:path 选项与 has_attached_file 的组合,但似乎没有一个有效。

在 Heroku 上使用 S3 回形针的正确步骤是什么?

【问题讨论】:

    标签: amazon-s3 heroku paperclip


    【解决方案1】:

    发现问题:需要更新数据库。

    heroku rake:db:migrate
    heroku restart
    

    我已经完成了我认为会完成同样事情的事情:heroku rake db:schema:load,但也许这不起作用或过程中出现了问题。

    无论如何,这样做,以及按照另一个博客的建议删除对 attr_accessor 的调用,解决了问题。

    【讨论】:

      【解决方案2】:

      我刚刚遇到了同样的问题。在开发中运行良好,在产品中将文件上传到 s3,但不会显示上传图像的 URL。跑步

      heroku restart
      

      是什么解决了它。无需运行 db:migrate(当然,除非您需要迁移数据库)。

      感谢您的信息!

      【讨论】:

        【解决方案3】:

        您可以粘贴表单中的代码吗?我猜你忘记在 form_for 标签中添加:html => {:multipart => true})

        【讨论】:

        • 感谢您的回复,但不,这不是答案。我的表单设置正确,正如我所说,在我的开发系统上一切正常。这个问题似乎只发生在 Heroku 上。
        • 好的,我明白了。您能否确认图像是否正在上传到您的 s3 生产存储桶?您可以使用 s3Fox(一个 firefox 插件)来执行此操作。另外,您使用的是 S3.yml 文件还是 config-vars?
        • 我安装了 S3Fox。如何判断图片是否实际上传?我正在使用 S3.yml。我认为这个特定的问题实际上是由我为了解决不同的问题而尝试过的一些事情引起的。详情请见stackoverflow.com/questions/3580592/…
        猜你喜欢
        • 2012-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-26
        • 2011-07-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多