我正在SPA模式下使用Nuxt v2.12.2,并希望在默认head
中使用env变量。我正在使用@nuxtjs/dotenv
,但是在呈现页面时,baseUrl
是未定义的。
我可以从页面布局内正常访问BaseUrl
,但不能从nuxt.config.js
内部访问,如下所示。
.env
BASE_URL=https://example.com
nuxt.config.js
const env = import('dotenv')
env.config()
export default {
mode: 'spa',
generate: {
fallback: true
},
env: {
baseUrl: process.env.BASE_URL || 'http://localhost:3000'
},
head: {
meta: [
{
hid: 'og:image',
name: 'og:image',
content: process.env.baseUrl + '/og/facebook.png'
}
],
},
modules: [
'@nuxtjs/dotenv'
]
...
}
答案 0 :(得分:2)
process.env.baseUrl
属性后,尚未设置 head
。
一种解决方案是对head
使用功能,该功能将在设置env
之后运行:
export default {
head: () => ({
meta: [
{
hid: 'og:image',
name: 'og:image',
content: process.env.baseUrl + '/og/facebook.png'
}
]
})
}
答案 1 :(得分:0)
上面的解决方案(使用头部函数)对我不起作用,但这样做了:
https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-env
如果您使用 NUXT_ENV_,那么 env 变量在构建时可用,并且可以在头部使用!