【问题标题】:heroku postgress images not displaying ruby on railsheroku postgres 图像未在 Rails 上显示 ruby
【发布时间】:2017-03-15 18:49:12
【问题描述】:

问题

在物化滑块中显示用户从 heroku postgress 上传的照片时遇到问题。它仅在用户上传新图片后显示。之前上传的任何内容(在 heroku 上部署时)都不会显示。我还在应该显示图像滑块的页面上收到 Failed to load resource 404 in the browser console

尝试的解决方案

我已尝试运行终端命令“heroku run rails assets:precompile”,但仍然无法正常工作。我的本地版本运行良好,没有问题。我不确定这是否是 Materialise 正在寻找的

这是view

这是erd

【问题讨论】:

  • 你在哪里上传照片,你在使用像carrierwave这样的宝石吗?我不熟悉物化。你 post.photo 是一个字符串,它是包含不同的字段还是只是图片的 url?开发版网站有这个问题吗?如果是,这可能与资产管道有关,并且很容易找到。您只需检查您的图像并检查src 标签。如果他们不是http://yourdomain.com/assets/yourimage.jpb,那可能就是问题所在。当您在开发中工作时,图像保存在哪里?在您的公共/资产中?

标签: ruby-on-rails heroku erb materialize heroku-postgres


【解决方案1】:

Heroku 是只读系统,因此您无法将图像上传到 Heroku。

您必须使用carrierwave gem 将图像上传到Amazone S3 或云服务器。

【讨论】:

    【解决方案2】:

    运行heroku run rails assets:precompile 将无效。每当您调用heroku run 命令时,都会创建一个新的一次性测功机,执行该命令,然后终止测功机。这些更改不会反映在您的实际 Web 服务器上。顺便说一句,它应该是rake assets:precompile

    第二件事,assets:precompile 适用于应用程序静态资产,例如 javascript、样式表和图像,它们是您网页设计的一部分。您不会将它用于用户上传的图像。

    我认为您的问题是您只是将用户照片上传到应用目录中的某个位置。也许在public 或评论中提到的那样。这在 Heroku 上不起作用,因为您没有持久存储。下次部署或重新启动后,磁盘上的任何更改都将消失。您需要做的是将上传的文件存储在其他地方,即。亚马逊 S3。如果您使用某些 gem 进行上传(carrierwave 或回形针),它应该很容易设置。

    【讨论】:

    • 太棒了,我会试一试。导航 Heroku 可能有点令人生畏,感谢您的反馈!
    猜你喜欢
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 2020-06-04
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多