heroku postgress图像不显示轨道上的红宝石

时间:2017-03-15 18:49:12

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

问题

在物品尺寸滑块中显示来自heroku postgress的用户上传照片时遇到问题。它仅在用户上传新图片时显示。之前上传的任何内容(部署在heroku上时)都不会显示。我还在应该显示图像滑块的页面上获得无法在浏览器控制台中加载资源404

尝试解决方案

我已尝试运行终端命令' heroku run rails assets:precompile'哪个仍然无效。我的本地版本工作正常没有问题。我不确定这是否是在

中查找的Materialise

这里是view

enter image description here

这里是erd

enter image description here

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

第二件事,assets:precompile适用于应用程序静态资产,例如javascripts,样式表和作为Web设计一部分的图像。您不能将其用于用户上传的图片。

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