在我的项目中我使用 nuxt js。我有一条路线看起来像 服务/:slug 构建并生成后,我的所有路线都完美运行。我用下面的代码在生成时生成动态路线
generate: { routes(callback) { axios .get('url') .then(res => { const routes = res.data.data.map(service => { return '/services/' + service.slug }) callback(null, routes) }) .catch(callback) axios .get('https://url') .then(res => { const routes = res.data.data.map(offer => { return '/campaigns/' + offer.slug }) callback(null, routes) }) .catch(callback) } }
但是当我在构建和生成后从管理面板创建另一个新项目时,会出现问题。
当我运行nuxt生成时,我似乎有三个路线
现在,在服务器中托管我的 dist 文件夹后,我点击 www.url/service/cash ,它的工作完美。
现在我在管理面板中创建一个名为send-money的新服务项目 然后当我使用 www.url/service/send-money 打开浏览器时 它不起作用并得到 404。
现在我不明白如何解决这种情况。
使用
SSG
nuxt 时仅生成项目中的可用页面。这就是SSG
的工作原理。因此,您需要在服务器中创建一个自定义的script
以在创建新页面后运行 yarn build && yarngenerate
命令。例如,假设您正在创建一个博客。当您使用
yarngenerate
时,nuxt 会生成在该特定时间从数据库中获取的帖子,并将它们移动到dist
文件夹中。因此,您需要附加一个自定义脚本 - 您需要以某种方式在后端创建该脚本 - 以在创建新帖子后运行yarn build && yarngenerate
。