Nuxt 3 代理生产配置

问题描述 投票:0回答:1

我已经像这样配置了我的 next.config.ts:

nitro: {
    devProxy: {
      "/auth": {
        target: "http://example.com:8000/auth", 
        changeOrigin: true,
        prependPath: true,
      },
      "/test": {
        target: "http://example.com:8000/test", 
        changeOrigin: true,
        prependPath: true,
      },
      "/prod": {
        target: "http://example.com:8000/prod", 
        changeOrigin: true,
        prependPath: true,
      },
    }
  }

当我写作时

npm run generate 

并写下

npx serve .output/public 

检查生产中构建的项目,它返回 404 错误,响应是 html,但应该是 JSON 对象。我知道 devProxy 仅用于开发,但是我如何在生产中处理代理?

我搜索并看到了这个线程并且我尝试了vite配置,但即使在开发模式下它也不起作用,而且我还尝试了像硝基路由规则

nitro: {
    routeRules: {
      "/auth/api/login": { proxy: {
        to: 'http://example.com:8000/auth/api/login',
      } },
      '/test/api/sites': {
        proxy: 'http://example.com:8000/test/api/sites'
      },
      '/prod/api/sites': {
        proxy: 'http://example.com:8000/prod/api/sites'
      }
    }
  }

它在开发中有效,但在生产中无效。如果我这样写:

nitro: {
    routeRules: {
      "/auth/**": { proxy: {
        to: 'http://example.com:8000/auth/**'
      } },
    }
  }

这也行不通。

proxy nuxt.js vite nuxtjs3 nitro
1个回答
0
投票
  1. 硝基开发代理仅在开发者模式下工作,因此生成后它将不再工作。
  2. 最新的硝基版本(Nitro 2.6.3)到目前为止还不能工作。我在 github nuxt3 和 ninto 上留下了几条消息。也许在硝基的下一个版本中它会得到解决。
  3. 经过一周多的挣扎,我发现最好的解决方案是使用“nuxt-proxy”。你可以在这里找到它 https://www.npmjs.com/package/nuxt-proxy
  4. 使用简单。
  proxy: {
    options: {
      target: 'http://127.0.0.1:yourport',
      changeOrigin: true,
      pathRewrite: {
        '^/api/login': '/api/login',

      },
      pathFilter: [
        '/api/login',
        and your rest
      ]
    }
  },

锁好

© www.soinside.com 2019 - 2024. All rights reserved.