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

Vite server.base配置未生效,反向代理下资源路径异常求助

问题解决:Vite React在反向代理下的资源路径404问题

关于server.base的用途

server.base的作用是让Vite开发服务器自身监听在指定的子路径下,比如配置server.base: "/react/"后,你需要直接访问http://localhost:1234/react/才能加载服务。它并不负责适配反向代理的外部访问前缀,所以你的场景下这个配置完全不适用,这也是为什么你改了之后没效果的原因。

正确的解决方法

1. 调整Vite配置

针对反向代理场景,需要用server.origin(开发环境)和base(生产构建)来配置:

// vite.config.js
export default defineConfig({
  plugins: [react()],
  server: {
    host: true,
    port: 1234,
    // 指定外部访问的完整前缀,Vite会基于这个生成资源请求路径
    origin: 'http://localhost/react/'
  },
  // 生产构建时,设置资源的基础路径前缀,确保打包后的资源都带/react/前缀
  base: '/react/'
})
  • server.origin:告诉Vite开发服务器,外部用户访问它的URL前缀是http://localhost/react/,这样生成的@vite/client等资源链接会自动带上/react/前缀。
  • base:生产构建时生效,确保打包后的静态资源路径都以/react/开头,适配反向代理的路径。

2. 确保反向代理配置正确

以Nginx为例,反向代理配置需要正确转发路径并传递必要请求头:

location /react/ {
  # 将请求转发到Vite服务,注意末尾的/,会把/react/后面的路径拼接到1234端口的路径上
  proxy_pass http://localhost:1234/;
  # 传递Host头,让Vite识别外部访问的域名
  proxy_set_header Host $host;
  # 传递前缀信息,部分工具依赖这个头识别路径
  proxy_set_header X-Forwarded-Prefix /react/;
}

如果是Docker Compose中的反向代理(比如Traefik、Nginx服务),需确保路径重写规则正确:将/react/*的请求转发到Vite服务的/*路径。

3. 验证效果

重启Vite服务和反向代理后,刷新页面查看网络请求,@vite/client等资源的请求路径应该变成http://localhost/react/@vite/client,不再出现404。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:22:57