chr*_*ole 6 vue.js vue-router nuxt.js
我很确定这个问题的答案是否定的...但是有什么方法可以在生产服务器从内部运行时即时启动 .nuxt/routes.json 和 .nuxt/router.js 文件的重建原生 nuxt 功能。nuxt.config.js router.extendRoutes 在初始构建时构建路由 - 尚未找到在服务器仍在运行时进行更新的方法。宁愿不必进行新的 npm 构建。
// Router middleware
router: {
middleware: ['router-agent', 'ssr-promises'],
async extendRoutes (routes, resolve) {
// pulls in routes from external file
await customRoutes(routes, resolve)
}
},
Run Code Online (Sandbox Code Playgroud)
我们有一系列需要从 CMS 构建的自定义路线
// extendRoutes snippet
let pageRoutes = require('./routes-bkp.json')
try {
const { data: { pages } } = await getPagesForRoutes.queryCMS()
pageRoutes = pages
console.log('Route Request Succeeded.')
} catch {
console.log('Route Request Succeeded.! Using backup version.')
}
pageRoutes.forEach(({ slug }) => {
routes.unshift({
name: slug,
path: `/:page(${slug})`,
component: '~/pages/_page'
})
})
Run Code Online (Sandbox Code Playgroud)
所有这一切的目的是在 CMS 更新页面时有一个客户端构建触发器。
有关 router.js 的更多信息: https://nuxtjs.org/docs/directory-struct/nuxt
关于在这里扩展路由器: https ://nuxtjs.org/docs/features/file-system-routing/#extending-the-router
build.watch可能会帮助您在文件更改时触发服务器重新启动。
您还可以在服务器上生成一个 json 文件,其中包含有关 CMS 动态路由的信息,将该文件导入到您的build.watchextendRoutes文件中,以防更改后不会触发重新启动
对于生产,您可以以编程方式使用 nuxt来公开侦听请求并重新启动服务器的服务器中间件
| 归档时间: |
|
| 查看次数: |
791 次 |
| 最近记录: |