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

Laravel Vite无法修改__vite_ping请求base url问题咨询

问题原因

开发模式下laravel-vite-plugin会强制覆盖Vite原生的base配置项,优先读取Laravel侧的环境变量生成资源路径,这就是你调试时看到base始终为/、手动修改配置不生效的核心原因。
__vite_ping是插件用来检测Vite开发服务存活状态的内置接口,它的请求地址完全由插件逻辑生成,不受vite.config.js里手动设置的base参数控制。你遇到的请求打到https://server.test/__vite_ping的问题,本质是插件默认读取了Laravel的APP_URL/ASSET_URL配置拼接地址,没有识别到你本地的Vite开发服务端口。

解决方案

按以下步骤配置即可:

1. 显式指定Vite开发服务器地址

两种方式二选一即可,推荐优先用环境变量配置,适配多环境场景:

  • 方式一:修改Laravel根目录的.env文件,添加以下配置
# 本地开发时指定Vite服务地址
VITE_DEV_SERVER_URL=https://localhost:3000
ASSET_URL=https://localhost:3000

注意:生产环境请删除这两项配置,ASSET_URL生产环境应填写实际的静态资源CDN/站点域名。

  • 方式二:直接在vite.config.js中给laravel插件传固定配置,适合固定本地开发场景
    修改你的laravel()插件配置项,添加dev_server_url参数:
plugins: [
    laravel({
        input: [
            'resources/css/app.css',
            'resources/js/app.js',
        ],
        refresh: true,
        // 显式声明开发服务器地址,跳过插件自动拼接逻辑
        dev_server_url: 'https://localhost:3000',
    }),
],

2. 调整Nginx路由规则

避免Nginx把Vite相关的开发请求转发到Laravel应用,在Nginx的站点配置中添加路径排除规则:

location ~ ^/(?!__vite|@vite|build) {
    try_files $uri $uri/ /index.php?$query_string;
}

配置完成后重载Nginx:nginx -s reload

3. 清缓存重启服务

执行以下命令清空Laravel缓存,再重启Vite开发服务即可生效:

php artisan config:clear
php artisan cache:clear
npm run dev
验证

重启服务后打开浏览器控制台,查看网络请求可以看到__vite_ping已经正确请求https://localhost:3000/__vite_ping,此时再执行vite -d调试也能看到base参数已经正确读取为你设置的开发服务地址。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:39:15