You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel-Vue SPA部署Ubuntu后报The Mix manifest does not exist错误求助

解决Laravel部署时"The Mix manifest does not exist"错误的方案

嘿,刚接触Laravel就碰到这个问题很正常,别慌!这个错误本质是Laravel找不到Mix编译前端资源后生成的mix-manifest.json文件——这个文件记录了编译后资源的哈希路径,Laravel靠它来加载正确的前端文件。下面是一步步的解决步骤:

1. 在服务器上安装前端依赖

登录到你的Ubuntu服务器,进入项目根目录/var/www/html/project,先安装所有前端依赖:

npm install

如果是生产环境,推荐用npm ci,它会严格按照package-lock.json安装依赖,更稳定:

npm ci

2. 编译生产环境的前端资源

依赖安装完成后,执行生产环境的编译命令,这会生成压缩后的前端文件和关键的mix-manifest.json:

npm run prod

⚠️ 注意:别用npm run dev,这是开发环境的编译,生成的资源没有优化,而且可能不会生成适合生产环境的manifest路径。

3. 检查public目录的权限

Web服务器需要能读取public目录下的资源,所以给它设置正确的权限:

sudo chown -R www-data:www-data /var/www/html/project/public
sudo chmod -R 755 /var/www/html/project/public

这里的www-data是Nginx/Apache默认的运行用户,如果你的服务器用了其他用户,替换成对应的即可。

4. 确认Blade模板里的资源引用方式

打开/var/www/html/project/resources/views/index.blade.php,确保你用了Laravel的mix()函数来加载资源,比如:

<script src="{{ mix('js/app.js') }}"></script>
<link href="{{ mix('css/app.css') }}" rel="stylesheet">

绝对不要直接写固定路径(比如<script src="/js/app.js"></script>),因为mix()会自动读取mix-manifest.json里的哈希路径,避免缓存问题,同时也是Laravel推荐的方式。

5. 清理Laravel缓存

有时候旧的缓存会导致路径识别错误,执行下面的命令清理缓存:

php artisan cache:clear
php artisan config:clear

6. 检查.env文件的APP_URL设置

打开项目根目录的.env文件,确保APP_URL设置成你服务器的域名或IP,比如:

APP_URL=http://your-server-ip
# 或者域名
APP_URL=http://your-domain.com

Mix会根据这个URL生成正确的资源路径,要是这里写错了,也可能导致manifest找不到。

做完这些步骤,再重新访问你的网站,应该就能解决这个问题了!

内容的提问来源于stack exchange,提问作者sankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:08:53