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

Vite配置:如何捕获所有请求,仅代理符合规则的请求并保留静态文件本地服务

Vite代理规则配置:仅转发符合条件的请求

你可以通过Vite代理配置中的bypass函数实现需求——让静态文件由开发服务器处理,仅当请求符合指定条件时才转发到后端。修改后的配置如下:

server: {
  proxy: {
    '^.*': {
      target: 'https://backend.com',
      secure: false,
      changeOrigin: true,
      ws: true,
      bypass: (req, res, options) => {
        // 匹配静态文件(index.html、app.js等),直接交给开发服务器处理
        const staticFileRegex = /\.(html|js|css|svg)$/;
        if (staticFileRegex.test(req.url || '')) {
          return '';
        }

        // 检查请求是否符合代理条件
        const acceptHeader = req.headers['accept'] || '';
        const isJsonRequest = acceptHeader.includes('application/json');
        const isImageRequest = /\.(png|jpg|jpeg|gif|webp)$/.test(req.url || '');

        // 不符合条件的请求,交给开发服务器处理
        if (!isJsonRequest && !isImageRequest) {
          return '';
        }

        // 符合条件,继续执行代理逻辑
        return false;
      }
    }
  }
}

配置说明:

  • bypass函数在代理请求触发前执行:返回非空字符串时,请求会被转发到开发服务器;返回false时,请求会按代理规则转发到后端。
  • 首先通过正则匹配静态文件后缀(html、js、css、svg等),这类请求直接由开发服务器提供服务。
  • 接着判断两个代理条件:
    1. 请求头accept包含application/json
    2. 请求路径是图片格式(png、jpg、jpeg等)
  • 只有满足其中一个条件的请求才会被代理到后端,其余请求都由开发服务器处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:50:36