我正在将 NextJS 用于我想要完全静态呈现的网站。而且我还希望启用使用 NextJS 链接的客户端导航。有一个特定的页面,我在其上打开一个 iFrame,其中 src 属性在客户端进行评估。对于某些页面,我想在 iFrame 下方显示一些文本,并且我将这些文本映射到数据库中的某些 URL。对于所有其他 URL(没有映射到数据库中的任何文本),我想显示相同的(我们称其为页面的默认值)HTML。
示例:在数据库中我有:{ '/foo/bar', 'FOO BAR', '/baz/test': 'BAZ TEST' }
因为/foo/bar
我想在FOO BAR
下面渲染 iFrame 和文本。
对于/some/other/path
, (基本上是除and/another/path
之外的所有其他路径)我只想渲染一个默认请求的页面,以节省磁盘空间。原因是我会有 20 到 30 页的文本和 10k 的没有文本的页面。/foo/bar
/baz/test
我尝试将重写规则与fallback: 'false'
页面上的选项一起使用,但对于这种特定情况,似乎没有正确的组合。
我尝试了什么:
[...slug.ts] (用文本渲染 iFrame)fallback: 'false'
和 getStaticPaths ['/foo/bar', 'baz/test'] 的返回值以及 [default.ts] (只渲染 iFrame ) 我在 next.config.js 中尝试了两种不同的配置设置:
尝试1: rewrites() { return [{'source': '/:slug*', 'destination': '/default'] }
尝试2: rewrites() { return { 'fallback': [{'source': '/:slug*', 'destination': '/default'}]} }
这些似乎都不起作用,我开始想也许我在这里使用了完全错误的方法。有什么建议么?