如何在Heroku里面的Laravel中缓存配置?即构建在与运行时不同的路径中

igo*_*s07 7 php build heroku production-environment laravel

在Laravel文档中,建议./artisan config:cache在生产中运行以加快速度.Heroku非常棒,因为每次构建都会带来新的文件系统状态,因此我们甚至不必费心在部署之间清除缓存.

但是:如果您将该命令添加到部署过程(例如,通过Composer),您的Laravel应用程序将开始崩溃,因为它将在现在已经过去的构建路径(类似/tmp/random_string)中查找文件.如果你运行,heroku run pwd你会注意到运行时应用程序存在/app.

它似乎./artisan config:cache将临时构建路径存储在缓存设置中,而应用程序则在另一个路径中运行.是否可以更改生成的配置缓存中使用的路径?

小智 8

你最好在启动时而不是在构建时执行此操作.为此,您需要修改composer.json以添加:

"warmup": [
    "php artisan config:cache",
    "php artisan route:cache"
],
Run Code Online (Sandbox Code Playgroud)

然后将procfile修改为类似的东西 web: composer warmup && $(composer config bin-dir)/heroku-php-apache2 public/

从Heroku支持获得提示的积分!