Пути только для клиента Gatsby показывают 404 при первой загрузке в браузере в рабочей среде - PullRequest
0 голосов
/ 25 мая 2020

Я создаю свои динамические c страницы в gatsby-node.js для создания путей на стороне клиента. Все страницы работают нормально в localhost, и страницы также показывают нужные данные в продакшене. Но браузер по-прежнему показывает страницу как 404 при первой загрузке. Я пробовал в gatsby-node.js таким образом:

const path = require ("path")
exports.omCreatePage = async ({ page, actions }) => {
    const { createPage } = actions

    createPage({
       path: "/blog/id/slug",
       matchPath: "/blog/:id/:slug",
       component: path.resolve("src/components/Blogpage.jsx")
    })


    // Another try
    if (page.path.match(/^\app/)) {
       page.matchPath = "/blog/:id/:slug"

       createPage(page)
    }

}

Кроме того, я использую firebase hosting. Я также попытался настроить свой firebase.json файл для перенаправления следующим образом:

{
  "hosting": {
     ...,
     "redirects": [
         {
            "source": "/blog/:id*",
            "destination": "/blog/:id/:slug",
            "type": 301
         }
     ]
  }
}

1 Ответ

1 голос
/ 26 мая 2020

У меня есть решение! Все, что мне нужно сделать, это использовать перезаписывает в firebase.json файле для определения страницы моего блога следующим образом:


{
  "hosting": {
     ...,
     "rewrites": [
         {
            "source": "blog/**",
            "destination": "/index.html"
         }
     ]
  }
}

Это работает как шарм.

...