Ссылка на не-gatsby HTML-страницу в том же домене без Gatsby перенаправления на 404 - PullRequest
1 голос
/ 02 ноября 2019

У меня есть блог Гэтсби. Я пишу учебные посты для кодирования игр в приложении create-реагировать. В моей разметке поста Гэтсби я пытаюсь дать ссылку на встроенную версию приложения демо-реакции для этого поста, размещенного на том же сервере, но Гэтсби продолжает давать мне страницу 404.

Я использую nginx. Все содержимое общей папки, полученной в результате gatsby build, находится в каталоге var/www/html моего веб-сервера.

Сборка create-реагировать-приложение находится внутри var/www/html/tutorials/01/ и имеет собственный файл index.html. .

В своей уценке я пробовал оба эти формата ссылок: view the code [here](/tutorials/01/) и view the code [here](//165.227.94.249/tutorials/01/).

Если вы просматриваете публикацию в своем браузере по адресу //165.227.94.249/posts/tutorial-01 и нажимаете на ссылку, вы перейдете на страницу //165.227.94.249/tutorials/01/. но отобразить страницу 404. Но если вы обновите браузер по тому же URL-адресу, будет работать рабочее приложение реакции.

Как я не позволю Гэтсби переопределить этот запрос и показать страницу 404 вместо того, чтобы позволить веб-серверу обслуживать индексHTML-файл, который существует по этому адресу?

Ответы [ 2 ]

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

Вы должны попытаться отключить gatsby-plugin-catch-links. Если это не сработает, попробуйте перехватить событие onClick, отмените событие и активируйте свое собственное перенаправление.

function processExternalSameDomainLink(event) {
  window.location.href = url

  event.stopPropagation()
  event.preventDefault()
  return false
}

<a href={newTo} onClick={processExternalSameDomainLink}>
0 голосов
/ 04 ноября 2019

Внутренние ссылки в вашей разметке автоматически преобразуются в Gatsby Link во время сборки. Gatsby Link предназначена только для внутренних ресурсов из сборки Gatsby. Ваше приложение create-Reaction-app находится на том же сервере, но вне процесса сборки Gatsby.

Из документации :

Этот компонент предназначен только дляссылки на страницы обрабатываются Гэтсби. Для ссылок на страницы в других доменах или страницы в том же домене, которые не обрабатываются текущим сайтом Gatsby, используйте обычный элемент.

Я думаю, что использование полного URL-адреса внутри разметки, включая https, может быть успешным:https://165.227.94.249/tutorials/01/

PS: Когда я попытался, я получил тайм-аут соединения с вашего сервера.

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