Laravel 部署到 heroku 时缓存文件出现问题

Laravel problem with cache file when deploy to heroku

我的应用程序正在使用 laravel 8。我将它从 github 部署到 heroku,我想通过使用 php artisan config/route/view/event:cache 来缓存应用程序的配置,就像我在本地主机中使用的那样。问题是我不知道 运行 这些命令的位置,如果我可以在我的应用程序中创建缓存文件,那么 heroku 将在特定时间后删除它们,因为它们不是从 github 永久部署的文件。任何人都知道如何处理这个请告诉我该怎么做。谢谢!

P/s:我尝试像下面的 link 那样做,但它没有在我的应用程序中创建任何缓存文件。 https://dev.to/autoidle/laravel-deployment-optimization-on-heroku-1hkc

[新更新]缓存配置的方式按照上面的link创建缓存文件。我现在唯一关心的是 heroku 是否会在特定时间后删除这些缓存文件。我会等待并稍后更新信息(或任何知道答案的人请告诉我)谢谢!

[新更新] 您可以按照下面的 link 做完全相同的事情,但是您需要将 Procfile 的部分从 composer warmup 修复为 作曲家运行-脚本预热。这将解决此线程中的问题。 https://dev.to/autoidle/laravel-deployment-optimization-on-heroku-1hkc

composer.json:

    "scripts": {
       ...
       "warmup": [
           "@php artisan config:cache",
           "@php artisan route:cache",
           "@php artisan view:cache"
    ]
},

过程文件:

web: composer run-script warmup && heroku-php-apache2

enter image description here

Heroku 使用 ephemeral filesystem,这意味着在 dyno 为 运行 时对文件系统的任何更改只会持续到该 dyno 关闭或重新启动。每个 dyno 都使用最近部署的文件系统的干净副本启动。这类似于有多少基于容器的系统,例如Docker,运行。

您的问题的解决方案是使用 Redis 作为缓存(以及会话、队列等)

  1. 添加到您的 Heroku 环境: CACHE_DRIVER=redis

  2. composer require ext-json

  3. 将 Redis 安装为附加组件,例如:https://elements.heroku.com/addons/heroku-redis