Laravel 8 共享主机部署出现Missing mix-manifest文件缺失问题如何解决
共享主机Laravel部署mix-manifest文件缺失解决方案
- 首先在现有
AppServiceProvider的boot方法中追加Mix manifest路径指定代码,完整代码如下:
use Illuminate\Support\Facades\Mix; public function boot() { // 原有public路径绑定 $this->app->bind('path.public', function() { return realpath(base_path().'/../public_html'); }); // 新增代码:明确指定mix-manifest.json的存储位置 Mix::setManifestPath(public_path('mix-manifest.json')); }
- 验证路径是否正确:可先临时把模板中
mix()辅助函数替换为asset(),比如将{{ mix('css/app.css') }}改为{{ asset('css/app.css') }},如果替换后不再报错,即可确认问题出在Mix的路径解析逻辑,而非文件真实缺失。 - 对齐本地编译配置:修改项目根目录下的
webpack.mix.js,添加公共路径指定配置:
mix.setPublicPath('public_html/');
修改后本地重新执行npm run prod,将新生成的mix-manifest.json、js/、css/文件夹完整上传到共享主机的public_html根目录下。
- 调整manifest路径格式:如果上述操作后仍报错,可手动修改
mix-manifest.json,删除路径前的前缀斜杠,内容改为:
{ "js/app.js": "js/app.js", "css/app.css": "css/app.css" }
- 检查文件权限:确保共享主机
public_html目录下的mix-manifest.json权限为644,js/、css/文件夹权限为755,避免权限不足导致Laravel无法读取文件。
内容的提问来源于stack exchange,提问作者Arosha Alwis
相关产品推荐
相关产品推荐

