在 Google Firebase 托管上将 Nuxt 与 Axios 结合使用

Using Nuxt with Axios on Google Firebase hosting

一切正常,除了部署到 Firebase 托管时,axiosbaseURLand/orproxy 默认为本地。他们似乎忽略了 nuxt.config.js 中设置的值,因此导致 404

如果我对 URL 的所有 API 调用进行硬编码,但我想避免这种情况。

为了让我的 Nuxt SSR API 调用在生产(firebase 托管)中使用我自己定义的 baseURLproxy 工作,就像在开发中一样,我应该更改什么?

nuxt.config.js

axios: {
    proxy: true,
    baseURL: 'http://staging.unicorns.com',
    browserBaseURL: '/api'
},
proxy: {
    '/api': 'http://staging.unicorns.com'
},

例如

API 开发中调用:

GET http://staging.unicorns.com/api/users 200

API 在生产中调用(错误 url):

GET http://unicorns-staging.firebaseapp.com/api/users 404

您可能需要检查您的 .bash_profile 或 .profile,确保您没有在那里设置 base_url。此外,根据您的配置,您可能需要在生产环境中重建项目。例如 npm build

原来是proxy。关闭它解决了问题。

由于 Firebase 不支持最新的节点/nuxt (edge),已经转移到 Heroku

您可以在您的云函数中添加 http-proxy-middleware 并实现此

图书馆url

http-proxy-middleware