Как сэкономить место на диске с помощью маршрутизации NextJS для одних и тех же страниц по разным URL-адресам?
Я использую NextJS для веб-сайта, который должен отображаться полностью статически. И я также хотел бы, чтобы была включена клиентская навигация с использованием ссылок NextJS. Есть конкретная страница, на которой я открываю iFrame, атрибут src которого оценивается на стороне клиента. Для некоторых страниц я хотел бы показать текст под iFrame, и у меня эти тексты сопоставлены с некоторыми URL-адресами в базе данных. Для всех других URL-адресов (которые не имеют сопоставления с каким-либо текстом в базе данных) я хотел бы показать тот же (назовем его по умолчанию для страницы) HTML.
Пример: в базе у меня есть:
{ '/foo/bar', 'FOO BAR', '/baz/test': 'BAZ TEST' }
Потому что я хотел бы отобразить iFrame и
FOO BAR
текст ниже.
За
/some/other/path
,
/another/path
(и в основном любой другой путь, кроме
/foo/bar
и
/baz/test
) Я хотел бы отобразить только одну страницу, к которой запросы по умолчанию, чтобы сэкономить место на диске. Причина в том, что у меня будет примерно 20-30 страниц с текстом и примерно 10 тыс. Страниц без текста.
Я пробовал использовать правила перезаписи вместе с опцией на странице, но, похоже, для этого конкретного сценария нет правильной комбинации.
Что я пробовал:
[... 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'}]} }
Кажется, что ничего из этого не работает, и я начинаю думать, что, возможно, я использую здесь совершенно неправильный подход. Какие-либо предложения?