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

时间:2018-07-03 11:43:54

标签: firebase vue.js axios firebase-hosting nuxt.js

一切正常,除非部署到Firebase托管中, axios baseURL和/或proxy默认为本地。他们似乎忽略了nuxt.config.js中设置的值,从而导致了404的值。

如果我对URL进行硬编码,则所有API调用都可以正常工作,但是我想避免这种情况。

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

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调用(错误网址):

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

3 个答案:

答案 0 :(得分:1)

您可能要检查.bash_profile或.profile,以确保未在其中设置base_url。另外,根据您的配置-您可能需要在生产环境中重建项目。例如npm build

答案 1 :(得分:0)

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

此后由于Firebase不支持最新的节点/ nuxt(边缘)而移至Heroku

答案 2 :(得分:0)

您可以在云功能内添加http-proxy-middleware并实现

库网址

http-proxy-middleware