这似乎是一个简单的Nuxt问题,但我无法弄清楚。
当运行“ NPM run dev”时,我要将Axios baseURL设置为“ localhost / api”,当在“ NPM run generate”后从dist文件夹运行时,我希望baseURL为“ /api”。
有一个简单的解决方案吗?
答案 0 :(得分:2)
这是这样做的方法:
let development = process.env.NODE_ENV !== 'production'
module.exports = {
axios: {
baseURL: development ? 'http://localhost:3001/api' : 'https://domain/api'
},
modules: [
'@nuxtjs/axios'
],
}
如您所见,您应该指定后端的完整URL,包括域(仅限SPA模式)。
别忘了安装@ nuxtjs / axios作为依赖项来尝试该示例。
答案 1 :(得分:0)
您还可以通过env变量从外部设置api(例如package.json脚本)
我的package.json片段(当浏览器使用不同的浏览器时,存在额外的复杂性 api url,然后进行服务器端渲染,Nuxt本身仍支持变量API_URL_BROWSER和API_URL)
"scripts": {
"dev-prodapi": "API_URL=https://kairly.com/api nuxt",
"dev": "API_URL=http://localhost:8000/api nuxt",
"dev-spa-prodapi": "API_URL=https://kairly.com/api nuxt --spa",
"dev-spa": "API_URL=http://localhost:8000/api nuxt --spa",
"build": "API_URL_BROWSER=https://kairly.com/api API_URL=https://internal-apihost/api/ nuxt build --modern=server",
"start": "API_URL_BROWSER=https://kairly.com/api API_URL=https://internal-apihost/api/ nuxt start --modern=server",
,并且在nuxt config中完全不使用axios部分。