如何修复Laravel项目中Vite manifest.json文件位置异常问题
解决Laravel Vite构建后manifest.json路径不符问题
问题原因
升级Node包后,新版laravel-vite-plugin在生产构建时,默认将manifest.json输出到public/build/.vite/目录下,但Laravel的资源加载助手默认从public/build/manifest.json读取配置,导致路径不匹配触发报错。
解决方案
在vite.config.js的laravel插件配置中,显式指定manifest的输出位置,让其直接生成在build根目录下:
修改后的vite.config.js关键配置片段:
plugins: [ laravel({ input: ['resources/sass/app.scss', 'resources/js/app.js'], refresh: [ { paths: ['resources'], }, ], // 新增配置:指定manifest输出到build根目录 manifest: 'manifest.json', }), ],
如果需要保留自定义的Rollup输出规则,也可以在build配置块中明确设置manifest路径:
build: { chunkSizeWarningLimit: 1000, // 显式指定manifest输出文件名 manifest: 'manifest.json', rollupOptions: { output: { assetFileNames: (assetInfo) => { let extType = assetInfo.name.split('.').pop(); if (/png|jpe?g|svg|gif|webp|tiff|bmp|ico/i.test(extType)) { extType = 'images'; } else if (/woff|woff2/.test(extType)) { extType = 'css'; } return `${extType}/[name]-[hash][extname]`; }, chunkFileNames: 'js/[name]-[hash].js', entryFileNames: 'js/[name]-[hash].js', }, }, },
验证步骤
- 执行生产构建命令:
yarn build - 检查
public/build/目录下是否生成了manifest.json - 启动Laravel应用,确认资源加载正常,不再出现找不到manifest的报错
补充说明
- 开发环境(
yarn dev)不依赖manifest文件,因此不会触发该问题 - 该问题源于
laravel-vite-plugin版本更新后的默认行为变更,显式指定manifest路径即可适配Laravel的资源加载逻辑
内容的提问来源于stack exchange,提问作者tij lip0018
相关产品推荐
相关产品推荐

