Laravel 11生产构建后Vite manifest找不到问题求助
问题原因分析
你遇到的错误核心是**@vite指令的用法错误**:@vite的第二个参数并非用于添加额外资源文件,而是用于指定资产的基础URL前缀(比如当静态资源部署在独立域名或子目录时才需要)。你错误地将resources/css/custom.css作为第二个参数传入,导致Vite误以为要在该CSS文件的路径下去查找manifest.json,从而出现了错误的路径。
解决方案
1. 修正Blade模板中的@vite调用
将所有需要加载的资源文件放在第一个数组参数中,第二个参数仅在需要指定资产基础URL时使用(通常部署到默认根目录时不需要)。正确写法如下:
@vite(["resources/js/app.js", "resources/css/custom.css"])
或者直接匹配你Vite配置中的所有输入项:
@vite(["resources/css/app.css", "resources/js/app.js", "resources/css/custom.css"])
甚至可以简化为(Vite会自动处理配置中定义的所有输入资源):
@vite
2. 重新构建生产环境资源
确保在部署前执行生产构建命令,生成正确的manifest.json和编译后的资源文件:
npm run build
构建完成后,manifest.json应该生成在public/build/目录下(Laravel Vite插件的默认输出位置)。
3. 验证环境配置
- 检查
.env文件中的APP_URL是否与生产环境的域名一致; - 如果设置了
ASSET_URL或VITE_ASSET_URL环境变量,确保其指向正确的资源根路径,不要包含具体的文件路径。
内容的提问来源于stack exchange,提问作者Bob Rockefeller
相关产品推荐
相关产品推荐

