无头 CMS 和静态页面?内容更新?
Headless CMS and static pages? Content updates?
我正在尝试使用我的第一个 Headless CMS,我已经尝试了 Prismic.io 和 Contentful。
例如,这是 Contentful 指南中的代码:
asyncData({ env }) {
return Promise.all([
// fetch the owner of the blog
client.getEntries({
'sys.id': env.CTF_PERSON_ID
}),
// fetch all blog posts sorted by creation date
client.getEntries({
content_type: env.CTF_BLOG_POST_TYPE_ID,
order: '-sys.createdAt'
})
])
.then(([entries, posts]) => {
// return data that should be available
// in the template
return {
person: entries.items[0],
posts: posts.items
}
})
.catch(console.error)
}
这很好用,我可以在
中获取我的博文
<article v-for="post in posts" :key="post">
<h2>{{ post.fields.title }}</h2>
<p>{{ post.fields.content }}</p>
</article>
但是,如果我使用 Nuxt 生成静态页面,我知道该页面在实时时仍会从 Contentful 加载最新版本的内容,而它只会在生成时保留在页面上获取的静态内容。
我是不是漏掉了重点?
谢谢
你发现的是正确的。当前版本的 Nuxt 会在出现新导航时向内容 API 发出请求。 Afaik 有计划在构建期间将数据写入磁盘(例如 Gatsby 就是这样做的)但是这些还没有实现。
就我个人而言,我 运行 我的私人博客正是关于这个技术堆栈的,有一小段时间 window 静态页面和动态加载部分是不同的。到目前为止,这对我来说不是什么问题。我能理解这可能会引起麻烦。
我正在尝试使用我的第一个 Headless CMS,我已经尝试了 Prismic.io 和 Contentful。
例如,这是 Contentful 指南中的代码:
asyncData({ env }) {
return Promise.all([
// fetch the owner of the blog
client.getEntries({
'sys.id': env.CTF_PERSON_ID
}),
// fetch all blog posts sorted by creation date
client.getEntries({
content_type: env.CTF_BLOG_POST_TYPE_ID,
order: '-sys.createdAt'
})
])
.then(([entries, posts]) => {
// return data that should be available
// in the template
return {
person: entries.items[0],
posts: posts.items
}
})
.catch(console.error)
}
这很好用,我可以在
中获取我的博文 <article v-for="post in posts" :key="post">
<h2>{{ post.fields.title }}</h2>
<p>{{ post.fields.content }}</p>
</article>
但是,如果我使用 Nuxt 生成静态页面,我知道该页面在实时时仍会从 Contentful 加载最新版本的内容,而它只会在生成时保留在页面上获取的静态内容。
我是不是漏掉了重点?
谢谢
你发现的是正确的。当前版本的 Nuxt 会在出现新导航时向内容 API 发出请求。 Afaik 有计划在构建期间将数据写入磁盘(例如 Gatsby 就是这样做的)但是这些还没有实现。
就我个人而言,我 运行 我的私人博客正是关于这个技术堆栈的,有一小段时间 window 静态页面和动态加载部分是不同的。到目前为止,这对我来说不是什么问题。我能理解这可能会引起麻烦。