在Laravel文档中,建议在生产中运行./artisan config:cache
以加快速度。Heroku非常棒,因为每次构建都会带来一个新的文件系统状态,所以我们甚至不必在部署之间清理缓存。
但是:如果你将该命令添加到部署过程中(例如通过Composer),你的Laravel应用程序将开始崩溃,因为它将在现在已经消失的构建路径中寻找文件(类似于/tmp/random_string
)。如果运行heroku run pwd
,您会注意到运行时应用程序位于/app
上。
./artisan config:cache
似乎将临时构建路径存储在缓存设置中,而应用程序则在另一个路径中运行。是否可以更改生成的配置缓存中使用的路径?
您最好在启动时而不是在构建时执行此操作。为了做到这一点,您需要修改composer.json以添加:
"warmup": [
"php artisan config:cache",
"php artisan route:cache"
],
然后将您的procfile修改为类似web: composer warmup && $(composer config bin-dir)/heroku-php-apache2 public/
的文件
这条消息的功劳归于Heroku支持的David!