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

如何修改Vite Manifest文件的输出目录

解决方案

问题根源在于Laravel Vite插件的默认输出逻辑和你当前的build配置冲突了——Laravel Vite插件默认会把产物放到项目根目录的public文件夹下,再加上你错误设置了publicDir,导致路径叠加出问题,才会找public_html/public/build/manifest.json。

按下面的方式修改配置即可:

  1. 给Laravel Vite插件指定输出子目录
    在laravel()插件的参数里添加output选项,明确让它把产物输出到build子目录。

  2. 修正build选项的错误配置

    • 把outDir直接设为你想要的最终目录public_html/build
    • 删掉publicDir: 'build',这个选项是用来指定Vite处理静态资源的公共目录,不是输出目录,留着只会搞乱路径

修改后的完整配置代码:

//vite.config.js
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';
import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite';
import { resolve } from 'path';
import { fileURLToPath } from 'url';

export default defineConfig({
  resolve: {
    alias: {
      'vue': 'vue/dist/vue.esm-bundler.js'
    },
   
  },
  plugins: [
    laravel({
      input: ['resources/css/app.css', 'resources/js/app.js'],
      refresh: true,
      output: 'build' // 指定Laravel Vite插件的输出子目录
    }),
    vue({
      template: {
        transformAssetUrls: {
          base: null,
          includeAbsolute: false,
        },
      },
    }),
    VueI18nPlugin({
        include: resolve(dirname(fileURLToPath(import.meta.url)), 'resources/js/locales/**'),
      }),
  ],
  build: {
    outDir: 'public_html/build', // 最终输出目录
    manifest: true, 
  }
});

额外注意事项:

  • 确认你的项目根目录下存在public_html目录,如果项目结构不同,调整outDir的路径即可
  • 执行npm run build后,去public_html/build目录下检查,应该能看到生成的manifest.json和静态资源文件
  • 如果你的Laravel项目把public目录指向了public_html,这样配置后,Vite::manifest()就能正确找到对应的manifest文件了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 05:10:06