首页 文章

如何在Nuxt中使用webpack dev代理

提问于
浏览
1

使用Nuxt来开发一个通用的JS应用程序,我正在尝试配置webpack's dev proxy,以便在开发时, /api 的请求被代理到 http://127.0.0.1:500/api ,它们在_607543中'll reach a Python REST API. Following the Nuxt docs, I'如下所示:

build: {
  extend (config, { isDev }) {
    // Proxy /api to Python only in dev
    if (isDev) {
      const devServer = {
        proxy: {
          '/api': 'http://127.0.0.1:5000'
        }
      }
      config.devServer = devServer;
    }
  }
}

如果我记录配置,我会看到正在应用的更改:

...
devServer: { proxy: { '/api': 'http://127.0.0.1:5000' } } }
...

然而,当我访问http://127.0.0.1:8080/api/things时,我的Nuxt应用程序被返回(它在dev中的端口8080上运行),表明webpack开发代理没有捕获 /api 路径并执行代理 . 只是为了确认代理目的地是否正常工作,如果我访问http://127.0.0.1:5000/api/things,我会得到预期的API响应 . Why, when I've extended the Nuxt webpack config to enable the webpack dev proxy, does the proxy not function?

然而,我已经在@nuxt/proxy模块上取得了成功,但是至关重要的是,我找不到让它只影响开发而不影响 生产环境 的方法 . nuxt.config.js 的那部分看起来像这样:

axios: {
  proxy: true
},
proxy: {
  '/api': 'http://127.0.0.1:5000'
},

我很高兴使用@ nuxt / proxy模块而不是(在?之上)webpack dev代理,只要它可以在开发中使用 .

1 回答

  • 0

    呃,我正在咆哮着错误的树 .

    Nuxt需要代理,即使在 生产环境 中也是如此 . 当处理我的初始请求并且应用程序是服务器端呈现时,任何API请求都需要代理,因为节点服务器正在执行调用而不是浏览器,因此这些API请求甚至不会像nginx那样命中我的 生产环境 路由器或HAProxy(通常我的路由为 //api 到适当的服务) .

相关问题