Skip to content

使用nginx反向代理到子路径后某些访问依旧请求根路径导致无法正常访问 #441

@bjx8970

Description

@bjx8970

Bug 描述
当使用 Nginx 配置反向代理将流量代理到应用的一个子路径(例如 /app/)时,应用内的某些资源请求(如 JavaScript、CSS、API 调用)仍然错误地向服务器的根路径(/)发起请求,而不是正确的子路径(/app/),导致这些资源无法加载,页面功能异常。

重现步骤

  1. 配置一个 Nginx 反向代理,将特定域名或路径(例如 example.com/myapp/)代理到后端应用服务器(例如运行在 http://localhost:3000 的应用)。
    location /myapp/ {
        proxy_pass http://localhost:3000/;
        # 其他代理设置...
    }
    
  2. 通过浏览器访问代理后的地址,例如 https://example.com/myapp/
  3. 页面可能部分加载,但检查浏览器开发者工具(F12)的网络控制台。
  4. 会发现 404 错误,原因是部分请求的 URL 为 https://example.com/static/js/... 而不是 https://example.com/myapp/static/js/...

预期行为
所有由应用发起的相对路径请求,都应该基于代理配置的子路径(/myapp/)来构建完整的 URL。例如,对于静态资源 /static/js/app.js,其请求的完整 URL 应为 https://example.com/myapp/static/js/app.js,从而通过 Nginx 正确代理到后端服务。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions