我是Nuxt的新手。我制作了一个静态网站,结果很棒,但是现在制作了一个具有动态内容的网站(例如博客)。我会有这样的结构:
->posts/
-->index.vue
-->_slug.vue
运行npm run dev
时,我可以转到mysite.test/posts/slug-1
,然后得到想要的页面。如果刷新,我仍然会得到该页面。
问题在我构建时就出现了。我使用npm run build --spa
(不是生成,我知道生成会创建静态文件,因此我必须为每个帖子制作一个静态文件)。现在,如果我转到mysite.test/posts/
并单击某个帖子,它将导航至mysite.test/posts/slug-1
,并且可以使用。如果我直接转到URL或刷新,不是吗?
该网站明确表示SPA模式适用于动态路由,但从我的角度来看,它仅可导航至它们,而不是直接链接?
Nuxt不知道您拥有哪些动态路由,因此您需要在nuxt.config.js
中的generate configuration选项中指定它们。阅读更多here。
您将执行以下操作:
export default {
generate: {
routes: [
'/posts/slug-1',
'/posts/slug-2',
'/posts/slug-3'
]
}
}
执行此操作后,如果刷新,它将不再为您提供动态路由页面上的404。