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