我们正在使用 nuxt 2.14.12
和 @nuxtjs/router 1.5.0
我们正在尝试使用运行时配置来发出一些 HTTP 请求客户端。
这是我们的router.js
export async function createRouter(ssrContext, createDefaultRouter) {
[...]
try {
const res = await axios.get(`${config.public.apiBaseUrl}/myslug`)
} catch (e) { }
[...]
}
这里是配置文件
[...]
const apiBaseUrl = `${process.env.NUXT_ENV_MY_API_URL || 'http://my-dev-domain.com'}`
[...]
export default {
apiBaseUrl,
},
private: {
apiBaseUrl,
},
[...]
这是我们的nuxt.config.js
export default {
[...]
publicRuntimeConfig: config.public,
privateRuntimeConfig: config.private,
[...]
buildModules: [
['@nuxtjs/router', { keepDefaultRouter: true }],
],
[...]
router: {
linkActiveClass: 'current-menu-item'
},
[...]
}
我们在 CI 中使用 nuxt build
,稍后在运行时我们使用 nuxt start
在运行时,尽管在服务器端正确设置了 env 变量 NUXT_ENV_MY_API_URL
,但在客户端站点上,该变量看起来是硬编码的(我认为 webpack 替换了它)并且我们在构建时获得了值({{1 }})
有没有办法在客户端使用运行时配置?
谢谢