page.data.json 404 не найден, а componentDidMount () не запущен в работе - PullRequest
0 голосов
/ 02 июля 2019

У меня есть сайт GatsbyJS, и я сталкиваюсь с проблемой, когда он не может найти ни файлов данных страницы, ни компонентDidMount (). Это происходит только на производстве, локально работает отлично, как с полной сборкой, так и в gatsby develop.

Шаги для воспроизведения

Вот демонстрационная страница, которую я создал для этого: https://gwhitworth -dev.azurewebsites.net / blog / 2019/06 / demo /

Примечания

  • Произошла ошибка, которая гласит: Failed to load resource: the server responded with a status of 404 (Not Found) https://gwhitworth-dev.azurewebsites.net/page-data/blog/2019/06/demo/page-data.json
  • componentDidMount() не запущен в производство, как локально, так что в конечном итоге я думаю, что это проблема, но я понятия не имею, связано ли это с page-data.json

Ожидаемый результат

Диаграмма должна отображаться в рабочем режиме так же, как и локально

Фактический результат

Если вы откроете ссылку выше, вы увидите, что не отображается верхний график, хотя он отображается локально.

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 03 июля 2019

Таким образом, проблема в том, что Гэтсби ожидает, что контент JSON будет иметь тип mime application/json:

const isJson = contentType && contentType.startsWith(`application/json`) 

Мой сервер не был настроен для этого, поэтому он отправлялjson-файлы с mimetype text/html, и это привело к тому, что данные страницы не загружались, и, следовательно, компоненты на странице не отображались.Чтобы это исправить, я добавил это в файл web.config (я в Azure, знаю, что это не будет универсальным):

<staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...