gpt4 book ai didi

javascript - Next.js 用于静态导出的动态页面参数

转载 作者:行者123 更新时间:2023-12-05 00:31:16 30 4
gpt4 key购买 nike

我的页面依赖于路由参数(例如:slug),就像这样 http://example.com/blog/:slug .此路由路径在我的 next.config.js 文件中正确定义:

module.exports = withPlugins(plugins, {
exportPathMap: (defaultPathMap) => {
return {
'/': { page: '/home/home' },
'/blog/:slug': { page: '/careers/careers' }
}
}
});

这在开发模式下运行项目时工作正常,但是一旦我将项目导出为静态,路由就无法访问,并且我从下一个得到常规的 404 错误。

有没有办法在不使用查询参数的情况下解决这个问题? http://example.com/?slug=123
这个解决方案 https://github.com/zeit/next.js/blob/canary/examples/with-static-export/next.config.js也是 Not Acceptable ,因为帖子来自后端 CMS

最佳答案

这是不可能的,因为 Next.js 静态导出生成静态 html 页面。如果您考虑一下,要使其正常工作,Next.js 必须以某种方式导出 url 段中有效的所有可能的字母组合,这根本不是一个好主意。

最接近的方法是使用查询参数和 as属性,例如链接到页面时:

<Link href='/blog/page?slug=SLUG_HERE' as='/blog/slug'>
// Link content here
</Link>

这只会在用户尝试链接或重新加载页面时中断,因为没有服务器端支持屏蔽。理论上,您可以使用 Nginx 或 Apache 来代理来自 /blog/SLUG_HERE 的请求(代理是正确的词吗?)至 /blog/page?slug=SLUG_HERE .这留给你自己弄清楚。

关于javascript - Next.js 用于静态导出的动态页面参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55339636/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com