https://i18n.nuxtjs.org/seo
文档里根据语言切换html lang的值,
// nuxt.config.js
export default {
// ...other Nuxt options...
head () {
const i18nHead = this.$nuxtI18nHead({ addSeoAttributes: true })
return {
htmlAttrs: {
myAttribute: 'My Value',
...i18nHead.htmlAttrs
},
meta: [
{
hid: 'description',
name: 'description',
content: 'My Custom Description'
},
...i18nHead.meta
],
link: [
{
hid: 'apple-touch-icon',
rel: 'apple-touch-icon',
sizes: '180x180',
href: '/apple-touch-icon.png'
},
...i18nHead.link
]
}
}
}
这么写后,会在控制台输出warning Avoid using head as a function!
解决这个问题的方法,是把这个放到layouts/default.vue里写,就能解决了
<template>
<div>
<!-- layout default -->
<nuxt />
</div>
</template>
<script>
export default {
head() {
const i18nHead = this.$nuxtI18nHead({ addSeoAttributes: true })
return {
htmlAttrs: {
...i18nHead.htmlAttrs,
},
}
},
name: 'default',
}
</script>