【问题标题】:Saved images in Heroku app are not being displayed?Heroku 应用程序中保存的图像不显示?
【发布时间】:2017-05-02 19:33:34
【问题描述】:

我是 Web 开发新手,我刚刚使用 Heroku 部署了我的网站。我使用 Laravel 作为框架,使用 Postgres 作为数据库。

在我的网站中,我有一个将图像存储在我的 public/images 文件夹中的功能。如果我在将图像部署到 Heroku 之前保存了图像并更改了文件权限,那么图像就会显示出来。但是,如果直接通过 Heroku 上传图片,则不会显示图片。

我猜这是由文件权限引起的。可能是因为 Heroku 中 public/images 文件夹中上传的图片没有继承该文件夹的权限?

【问题讨论】:

  • 图片是否正确上传到所需目录?
  • 是的。我在 bitbucket 中看不到它,但我认为它存储在 heroku 中?
  • 这很奇怪,因为昨天上传图片后显示正常,但今天我重新访问该网站并没有显示图片。

标签: php image postgresql laravel heroku


【解决方案1】:

Heroku 上的文件系统不是持久的。您无法将文件保存在 Web 服务器文件系统上,并期望这些文件可用于后续 HTTP 请求。

您需要使用另一个持久性存储,例如将这些文件存储在 AWS S3 或您的数据库中。可能还有其他插件可以让您简单地保存文件。

参考:https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem

以下是从 Postgresql 数据库保存和显示图像的示例:Upload/Download file in POSTGRESQL database with PHP

【讨论】:

  • 我不能将图像保存在 bitbucket 中吗?我没有信用卡可以在 Amazon AWS 上开户
  • Bitbucket 是 可以保存东西的地方。 Heroku 无法在其中保存文件。您的 Web 服务器可以将文件保存在 Postgres 数据库中。
猜你喜欢
  • 2014-02-08
  • 2021-03-29
  • 2018-01-15
  • 2015-06-02
  • 2014-07-30
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 2016-03-03
相关资源
最近更新 更多