Есть ли способ направить все URL с тем же сегментом базового URL на одну и ту же страницу в Гэтсби? - PullRequest
1 голос
/ 12 ноября 2019

Я хочу, чтобы site.com/shop/plp/, site.com/shop/plp/whwhat-url и site.com/shop/plp/whwhat-url?id:value всем приходили на site.com/shop / plp, без изменения URL или строки запроса.

В настоящее время я использую Gatsby и @ reach / router.

Есть ли способ сделать это, не прибегая к перенаправлению?

1 Ответ

0 голосов
/ 13 ноября 2019

Ответ от Advait направил меня в правильном направлении, он хотел добавить действительный код и одно дополнительное изменение, которое требовалось.

В gatsby-node.js, перед export.createPages ...

exports.onCreatePage = ({ page, actions }) => {
    const { createPage } = actions;

    if (page.path === '/routing/') {
        page.matchPath = '/routing/*';
        createPage(page);
    }
};

In pages / routing / index.js

render() {
    console.log(this.props);
    return (
        <Layout>
            <Container>
                <TestComponent />
            </Container>
        </Layout>
    );
}

И последний шаг по предотвращению мигания страницы 404 перед отображением реальной страницы, связанной с этой проблемой, https://github.com/gatsbyjs/gatsby/issues/5329

В 404.js

const browser = typeof window !== "undefined" && window;
const NotFoundPage = () => {
return (
    browser && (
        <div>
            <Layout>
                <Container>
                    <h1>404 Page</h1>
                </Container>
            </Layout>
        </div>
    )
);
};

Надеюсь, это кому-нибудь поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...