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

如何修复Vite部署时manifest not found报错

Vite 部署后提示 Vite manifest not found at: /app/public/build/manifest.json 排查方案

这个报错的核心原因是生产环境下,后端框架(绝大多数场景是使用Laravel Vite插件的Laravel项目)无法读取Vite生产构建生成的资源清单文件,本地运行正常是因为本地开发走npm run dev热更新模式,不需要生成manifest文件,按以下方向逐一排查即可:

  • 确认部署流程包含生产构建步骤
    绝大多数该报错都是部署时漏了前端构建环节,直接上传了源码。部署到主机后必须在项目根目录执行生产构建命令:
    npm run build
    构建完成后手动检查项目下public/build/目录,确认目录内存在manifest.json以及编译后的js、css静态资源文件。
  • 核对站点路径配置与目录权限
    报错提示的查找路径为/app/public/build/manifest.json,首先确认项目实际部署路径是否为/app,其次Laravel类项目必须将Web站点的运行根目录指向public文件夹,路径映射错误会直接导致文件查找失败。
    同时检查public、public/build目录的读取权限,保证运行Web服务/PHP进程的用户(常见如www-data、nginx账户)有目录读取权限,常规设置755权限即可满足需求。
  • 检查Vite构建输出配置
    打开项目根目录的vite.config.js或vite.config.ts,确认build输出路径配置正确,默认配置下输出目录应为public/build,自定义修改过输出路径会导致框架按默认路径查找失败,标准配置参考:
    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,
            }),
        ],
        build: {
            outDir: 'public/build'
        }
    });
    
  • 排查构建产物上传遗漏问题
    检查项目根目录的.gitignore文件,若/public/build被加入忽略规则,通过Git部署时该目录不会被同步到生产主机。这种情况要么在生产主机本地执行构建命令生成产物,要么调整忽略规则(更推荐服务器本地构建,避免不同环境构建产物差异问题)。
    如果是Docker容器化部署,检查多阶段构建流程是否漏拷贝前端构建产物:Node构建阶段跑完npm run build后,需要将生成的public/build目录拷贝到最终运行的PHP/Nginx镜像对应项目路径下。
  • 清理框架缓存避免旧配置干扰
    如果项目是从Laravel Mix迁移到Vite,或者之前修改过资源相关配置,执行以下命令清理Laravel缓存即可:
    php artisan config:clear
    php artisan view:clear
    php artisan cache:clear
    
    同时检查.env中ASSET_URL静态资源地址配置,不要添加错误的路径前缀导致资源定位异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:45:34