当我完成任务时,我没有提交webpack打包资产,比如CSS,JS,只提交/resources/assets/*
到git,并提取生产机器上的提交,在打包js和CSS期间需要一点时间来缩小CSS和JS。
此时很多用户请求页面,而某些页面包含像<link rel="stylesheet" href="{{ mix('/css/xxxxx.css') }}"/>
这样的CSS会在日志中引起异常,如Unable to locate Mix file: /css/xxxxx.css
我怎么能避免这种情况发生?
不建议在未处于维护模式的生产服务器上运行composer install
或npm run prod
。如果您需要零停机时间部署,请查看Envoyer。它是由创建Laravel的同一个人制作的。
另外,即使您使用envoyer,也不建议在生产服务器上运行npm run prod
。将所有节点文件放在服务器上是没有意义的,并且您将通过运行节点提交来浪费不必要的服务器处理能力。我建议在本地计算机上运行节点命令,并将webpack吐出的最终编译文件推送到服务器。无论如何,在将其部署到服务器之前,您需要检查CSS和JS的生产版本是否在本地计算机上按预期工作。