如何隐藏Laravel/Vue项目URL中的「build」路径
如何隐藏Laravel/Vue项目URL中的「build」路径
嗨,我来帮你搞定这个URL里带build的小问题~
你现在遇到的情况,应该是Laravel Vite插件默认把构建输出放到了public/build目录,导致URL自动带上了这个前缀。咱们从配置入手,几步就能解决:
首先打开你的vite.config.js,调整Laravel插件的配置项:
import { fileURLToPath } from 'node:url' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import laravel from 'laravel-vite-plugin' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' export default defineConfig({ plugins: [ laravel({ input: 'resources/js/app.js', // 这里是你的Vue入口文件,根据实际项目调整 publicDirectory: 'public', // 把构建产物直接输出到public根目录,不再用build子目录 base: '', // 清空base路径,避免URL里自动加/build前缀 }), vue({ template: { transformAssetUrls: { base: null, includeAbsolute: false, }, }, }), vueJsx(), // 保留你原来的AutoImport和Components配置 AutoImport({ // 你的原有配置内容 }), Components({ // 你的原有配置内容 }), ], })
改完配置后,先把之前生成的public/build目录删掉,避免旧文件干扰。然后重新运行构建命令:npm run build或者开发环境的npm run dev,这时候构建后的文件就会直接出现在public根目录下了。
接下来还要检查你的Laravel路由和视图:
- 在
routes/web.php里,确保你的SPA路由指向主视图,比如:Route::get('/{any}', function () { return view('app'); })->where('any', '.*'); - 然后在你的主视图(比如
resources/views/app.blade.php)里,用Laravel的@vite指令引入资源,别手动写带/build的路径,比如:
这个指令会自动根据Vite配置生成正确的资源URL,不会再带@vite('resources/js/app.js')build前缀了。
这样调整完之后,你的URL就会变成http://crm.local/login,完美去掉了讨厌的build路径~
备注:内容来源于stack exchange,提问作者SagTr15
相关产品推荐
相关产品推荐

