>

GatsbyJS 사이트가 있는데 페이지 데이터 파일을 찾을 수 없거나 componentDidMount ()가 실행되지 않는 문제가 발생했습니다. 이것은 프로덕션에서만 발생하며 전체 빌드와 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

    여기에서 문제는 Gatsby가 JSON 컨텐츠에 MIME 유형의 application/json 가 제공 될 것으로 예상한다는 것입니다. :

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

    내 서버가 이것을 수행하도록 구성되지 않았기 때문에 text/html 의 mimetype으로 json 파일을 전송했습니다.  이로 인해 페이지 데이터가로드되지 않아 페이지 내의 구성 요소가 렌더링되지 않았습니다. 이 문제를 해결하기 위해 이것을 web.config 에 추가했습니다.  파일 (저는 Azure에 있으며 이것이 보편적이지 않음을 알고 있습니다) :

    <staticContent>
          <mimeMap fileExtension=".json" mimeType="application/json" />
        </staticContent>
    
    

  • 이전 클래스를 키로 사용하는 C # 사전
  • 다음 security - IAM 사용자 계정으로 AWS Console에 로그인하려면 어떻게합니까?