Laravel 9+Vite在cPanel生产环境找不到Manifest文件求助
解决Laravel 9 + Vite生产环境Manifest文件找不到的问题
问题描述
开发基于Laravel 9、Vite及laravel-vite插件的项目时,开发环境运行正常,但部署到cPanel共享服务器生产环境后出现以下报错:
Vite manifest not found at: /home/???????/cart_shop/public/build/manifest.json # With Missing Vite Manifest File Did you forget to run `npm install && npm run dev`?
目录结构调整说明
原服务器目录结构:
- home - public_html - cart_shop - Root - public - etc
调整后目录结构:
- home - public_html - public files and folders // 已修改索引URL - cart_shop - Root - etc
当前vite.config.js配置
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [ laravel({ input: 'resources/js/app.js', }), vue({ template: { transformAssetUrls: { base: null, includeAbsolute: false, }, }, }), ], });
解决方案
问题核心是Vite默认的public目录和构建输出路径与调整后的服务器目录不匹配,需修改vite.config.js指定正确路径:
- 修改vite.config.js中的laravel插件配置,添加
publicDirectory和build选项:
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [ laravel({ input: 'resources/js/app.js', // 指定当前public目录的位置(从项目根目录cart_shop指向home/public_html) publicDirectory: '../public_html', build: { // 指定构建产物输出到public_html下的build文件夹 outDir: '../public_html/build' } }), vue({ template: { transformAssetUrls: { base: null, includeAbsolute: false, }, }, }), ], });
- 在生产环境执行构建命令:
npm install && npm run build
- 额外检查:确保public_html目录下的
index.php文件中,引入项目核心文件的路径正确。例如:
// 调整路径指向cart_shop/Root目录 require __DIR__.'/../cart_shop/Root/vendor/autoload.php'; $app = require_once __DIR__.'/../cart_shop/Root/bootstrap/app.php';
内容的提问来源于stack exchange,提问作者sos5020
相关产品推荐
相关产品推荐

