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

如何让Vite开发服务器在BASE URL中保留完整源地址?

解决Vite开发服务器不支持带域名BASE URL的问题

核心配置方案

无需依赖<base>标签和Django重定向,直接通过Vite配置强制让资源路径与HMR连接都指向Vite服务器的完整地址:

  1. 修改vite.config.js,配置server.origin与hmr.clientPort:
export default defineConfig({
  base: '/',
  server: {
    origin: 'http://localhost:5173', // 指定Vite服务器的完整地址,生成资源时自动带上
    hmr: {
      clientPort: 5173, // 强制HMR客户端使用Vite端口,避免适配Django端口
    },
  },
  // 其他Vue/SSR相关配置...
})
  1. 移除index.html中的<base>标签,同时删除Django中针对/static/@vite/client的重定向规则。

方案原理

  • server.origin会让Vite生成所有资源URL时自动拼接指定的完整域名+端口,浏览器会直接向Vite服务器请求资源,不会解析为相对于Django服务器的路径。
  • hmr.clientPort强制HMR客户端固定连接Vite的端口,避免页面从Django(8000端口)加载时,Vite客户端自动使用8000端口发起额外的HMR连接。

临时方案导致重复HMR连接的原因

<base>标签让多数资源从localhost:5173加载,但/static/@vite/client通过Django重定向后,浏览器会从localhost:5173加载该脚本;同时页面本身从localhost:8000加载,Vite客户端会分别从两个源初始化HMR连接,因此出现重复的连接日志。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:33:14