问题描述
所以,我在 Nuxt 中建立了一个网站并使用了 ssg。这很好,但对于另一个网站,90% 都是静态文本和图像,但我想要一个客户登录门户,他们可以在其中查看其产品的状态。以我的理解,我不明白这怎么可能是 ssg。那么可以同时拥有吗?
解决方法
Vue.js 被渲染到 #app 中。该 div 之外的所有内容都将是静态的。所以是的,你可以同时拥有。顺便说一句,如果您完全不需要 SPA,请检查 alphine.js,这是一个轻量级的替代方案。
,generate-exclude
配置可以帮助您避免 SSR 特定页面。
所以,假设我们有这个
export default {
generate: {
exclude: [
/^\/admin/ // path starts with /admin
]
}
}
它将 SSR 渲染除 admin
路径之外的所有内容,此路径仅可用作 SPA 生成的路由。
编辑以回答评论
如果你有这种结构,admin
下的所有嵌套路由都会被渲染为 SPA 页面。 blog
和 pricing
仍然是通用的(server
+ client
呈现)。
此外,一个简单的 admin.vue
也可以完成这项工作(如果不需要更多路由)。
pages
--admin
----secure-dashboard.vue
----info.vue
--blog
--pricing
对于缓存,我不确定它的行为究竟如何,但它应该仍然可以工作,因为它是浏览器端。并不是真的取决于渲染的类型。