一切正常,除非部署到Firebase托管中, axios baseURL
和/或proxy
默认为本地。他们似乎忽略了nuxt.config.js
中设置的值,从而导致了404
的值。
如果我对URL进行硬编码,则所有API调用都可以正常工作,但是我想避免这种情况。
为了使Nuxt SSR API调用能够像开发中那样使用自己定义的baseURL
和proxy
在生产(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
答案 0 :(得分:1)
您可能要检查.bash_profile或.profile,以确保未在其中设置base_url。另外,根据您的配置-您可能需要在生产环境中重建项目。例如npm build
答案 1 :(得分:0)
原来是proxy
。关闭它可以解决问题。
此后由于Firebase不支持最新的节点/ nuxt(边缘)而移至Heroku
答案 2 :(得分:0)