我在Nuxt.js上创建网站时遇到以下问题。
首先,我编写了nuxt.config.js,如下所示,这样无头CMS就可以工作了。
export default {
target: "static",
ssr: true,
generate: {
async routes() {
const pages = await axios
.get(
`https://path/to/endpint`,
{
headers: { "XXXX-API-KEY": process.env.API_KEY },
}
)
.then((res) =>
res.data.contents.map((content) => ({
route: `/${content.id}`,
payload: content,
}))
);
return pages;
},
},
//other settings omitted
然后我准备了一个页面“/pages/_id/index.vue”,代码如下
<template>
<div class="article">
<p>{{ content.title }}</p>
</div>
</template>
<script>
export default {
name: "",
async asyncData({ payload }) {
if (payload) {
return {
content: payload,
};
}
},
};
</script>
在这种情况下,当我启动“nuxtstart”并预览该页面时,实际上“content.title”成功地显示在页面上,但出现了一个控制台错误,显示“TypeError:无法读取undefined(阅读'title')"的属性。(请参阅影像)
我觉得这个行为很奇怪,因为nuxt generate应该只是生成一个静态传输的文件,但是这个错误意味着一个vue变量在浏览器上被重新求值...
当我在静态路由(如pages/preview/index.vue
)上放置完全相同的代码时,不会发生此错误。
有人知道吗?
1条答案
按热度按时间hgqdbh6s1#
我自己解决了。
nuxt.config.js应如下所示
但我代码中“route”没有斜线
我还不明白其中的区别,但我还是决定....