Отображение URL-адреса на странице 404 в Gatsby

Gatsby упрощает создание вашей собственной пользовательской страницы 404 здесь, но Я хотел бы отобразить URL-адрес на странице внутри сообщения - что-то вроде:

Страницы в "/ example / nope" не было.

Есть ли способ получить доступ к ошибочному URL-адресу со страницы 404?

Хотя я не могу найти никаких документов, связанных с этим, похоже, что страница 404 получает объект history в качестве одного из своих свойств, однако этот объект на самом деле не содержит никаких исторических URL-адресов, только api для перехода к предыдущему состоянию и текущий URL (/404).


person Undistraction    schedule 30.04.2018    source источник


Ответы (1)


Я посмотрел, как Гэтсби обрабатывает его для своей собственной страницы 404 разработки, и вот соответствующие строки из `gatsby / dist / internal-plugins / dev-404-page / raw_dev:

 render() {
    const pathname = this.props.location.pathname
    ...
    return (
      ...
        <p>
          {`There's not a page yet at `}
          <code>{pathname}</code>
        </p>
     )
   }

Таким образом, он использует location.pathname объекта props, который относится не к текущему URL-адресу страницы 404, а к URL-адресу страницы, вызвавшей ошибку 404.

Примечание: это не сработает, если вы посетите /404, чтобы увидеть свою собственную страницу 404 в разработке, поскольку 404 не создается в ответ на отсутствующую страницу, поэтому location.pathname будет /404

person Undistraction    schedule 01.05.2018