Почему
Хотя маршрутизатор на стороне клиента знает об этом пути, соответствующий HTML-файл отсутствует. Когда браузер просматривает сайт, он сначала загружает файл 404.html
, сгенерированный gatsby, который включает клиентский маршрутизатор. Как только маршрутизатор завершает свою инициализацию, он читает путь и загружает правильную страницу. Это значит, что вы попали в нужное место, но на неправильной странице полсекунды приземления.
Как это исправить
Общее решение - указать вашему серверу перенаправить /sample/
путь к вашему /sample/index.html
файлу. Способ сделать это зависит от вашего хоста, но я предоставлю название методики для разных хостов на случай, если вы захотите посмотреть его. Обычно это называется перезаписью URL и должно поддерживаться всеми основными хостинговыми платформами.
Heroku
В разделе Heroku документации по развертыванию gatsby предлагается использовать модуль heroku-buildpack-static , который имеет встроенную поддержку "пользовательских маршрутов", что решит эту проблему для вашего случая. используя такой синтаксис:
{
"routes": {
"/sample/**": "sample/index.html",
}
}