我有一个 nuxt-app,里面有很多帖子。我最近重构了这个项目,我不会再generate
发布所有帖子了,因为这样做需要花费太多时间。
相反,我有一个页面,我可以通过 url 查询获取匹配的帖子内容:
www.mypage.com/posts/?post=my-post-slug
因为内容位于静态 json 文件中,例如:
/static/data/posts/my-post-slug.json
/static/data/posts/my-post-slug_2.json
/static/data/posts/my-post-slug_3.json
/static/data/posts/my-post-slug_n.json
我阅读了 有关如何以最佳方式加载 json的帖子https://github.com/nuxt/nuxt.js/issues/123 。
我决定在fetch()钩子中做这样的事情:
// ... simplified code
async fetch() {
let postSlug = this.$route.query.post
const post = this.$axios
.get(`/posts/posts.de.${postSlug}.json`)
.then((data) => {
return data?.data
})
.catch((error) => {
console.error('error: ', error)
const code = parseInt(error.response && error.response.status)
if (code === 404) {
this.$nuxt.error({ statusCode: 404, message: 'Post not found' })
}
})
this.activePost = post?.items?.[0] || false
}
如前所述,我不会生成实际的帖子,但会在我的 sitemap.xml 中生成所有帖子网址。
在分析模式下运行生成时,我现在有一个 huuuuge 包大小(app.js),我不明白为什么...... - >查看附件图像。(注意:app.js
34MB 的大小太可笑了!!!!)
- 我不明白为什么我所有的 post json 都出现在 bundle 的 static 和 dist 部分???
- 我完全不明白他们为什么会出现在那里。我希望它们仅位于静态文件夹中,但不包含在应用程序包中。(你可以看到有类似 include 的文件。例如
events.bundle.de.json
,我需要那些来获取所有帖子的列表。我也只在我的 fetch 挂钩中这样做。
如果有人能指出为什么包含这些文件(两次),我会非常高兴!