Laravel 10部署共享主机时Vite manifest缺失报错求助
解决Laravel Vite构建后manifest.json找不到的问题
针对你遇到的Vite manifest not found报错,按以下步骤排查解决:
1. 确认构建命令执行状态
- 远程主机执行
npm run build时,仔细查看输出日志,是否有node版本过低、依赖缺失等报错。Vite 4.x要求Node.js版本≥16.0.0,执行node -v检查版本,若版本不够,可通过主机面板切换版本或用nvm临时切换。 - 构建完成后,手动检查远程主机的
public/build目录,确认是否生成了manifest.json、编译后的css/js文件。如果目录为空,说明构建未成功,先解决构建失败的问题。
2. 修正文件/目录权限
共享主机的权限限制可能导致Vite无法写入public/build目录:
- 通过SSH执行
chmod -R 755 public/build设置目录权限,文件权限设为644;若无法使用SSH,可通过主机的文件管理器可视化修改。 - 确保
public目录本身的权限正确,避免Vite无法创建build子目录。
3. 适配共享主机的目录结构
部分共享主机的网站根目录不是默认的public,而是public_html:
- 修改
vite.config.js,指定正确的public目录:
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: ['resources/css/app.css', 'resources/js/app.js'], refresh: true, publicDir: 'public_html' // 替换为你的实际网站根目录 }), ], });
- 同时检查
.env文件中的APP_URL是否与实际域名一致,若设置了ASSET_URL,需确保其指向正确的资源路径。
4. 本地构建后上传文件
如果远程主机的Node环境存在无法解决的问题:
- 在本地执行
npm run build,生成public/build目录下的所有文件。 - 将
public/build目录完整上传到远程主机的对应目录中(比如public_html/build)。
5. 清除Laravel缓存
执行以下命令清除配置和视图缓存,确保应用加载最新的资源配置:
php artisan config:clear php artisan view:clear
内容的提问来源于stack exchange,提问作者Volatil3
相关产品推荐
相关产品推荐

