Gatsby의 폴백 클라이언트 측 경로
대체 클라이언트 측 경로는 무엇입니까?
Gatsby.js로 만든 사이트는 성능면에서 최적화된 정적인 사이트이기 때문에 콘텐츠에 접근할 수 있기 때문에 이 콘텐츠를 (CMS나 백엔드에서) 이용할 수 있기 때문에 사이트를 구축해야 한다. .
그러나 경우에 따라 특히 대규모 콘텐츠 사이트의 경우 편집 팀에서 빌드가 완료되는 것보다 빠르게 콘텐츠를 추가합니다. 따라서 일부 콘텐츠가 추가되지만(CMS 또는 백엔드를 통해) 아직 사이트에서 사용할 수 없습니다.
그러나이 문제는 "대체 클라이언트 측 경로"시스템 덕분에 조정할 수 있습니다.
사용 사례 : 뉴스 웹사이트
뉴스 사이트에는 10,000개 이상의 기사가 있고 데이터베이스에 저장되어 있으며 Gatsby의 createPages API를 사용하여 정적 페이지를 만듭니다.
예를 들어 다음과 같은 URL이 있는 기사가 있습니다.
기사는 저널리스트 팀이 작성한 후 데이터베이스에 추가됩니다. 사이트의 저널리스트 팀은 매일 평균 100개의 기사를 작성하고 즉각적인 실제 주제에 대해 이야기하기 때문에 즉시 액세스할 수 있기를 원합니다.
하지만 사이트는 하루에 15번만 재구축됩니다(그렇지 않으면 재구축하는 데 몇십 분 정도 걸립니다) → 이것은 우리가 JAMTAX(JAMSTACK과 관련하여)라고 부르는 것의 일부입니다. 따라서 방금 게시된 기사에 즉시 액세스할 수 없고 몇 분 또는 몇 시간 후에만 액세스할 수 있는 경우가 매우 자주 발생합니다.
"대체 클라이언트 측 경로"를 만드는 것이 필요합니다. 이 폴백 클라이언트 쪽 경로는 아티클이 정적으로 생성될 때까지 사용되는 경로입니다. 이 대체 클라이언트 측 경로는 API 호출 덕분에 클라이언트 측에서 생성됩니다.
Gatsby에서 "대체 클라이언트 측 경로"를 설정하는 방법은 무엇입니까?
폴백 클라이언트 측 경로는 다음과 같은 모양의 URL과 일치합니다.
그리고 클라이언트가 정적으로 생성된 기사에 액세스하려면 폴백 클라이언트 쪽 경로가 아닌 정적 페이지(SSG)에 대한 액세스 권한이 있어야 합니다. 더 최적화되어 있기 때문입니다.
이를 위해 이 폴백 클라이언트 측이 될 페이지를 생성한 다음 onCreatePage API 및 해당 matchPath 인수 덕분에 생성될 때 해당 matchPath를 재정의할 수 있습니다.
actions.createPage({
path,
matchPath: "articles/:articleType/:articleId",
component: "fallbackArticlesComponent.tsx",
context: {
//The necessary context for your template
},
})
따라서 모양이 article/:articleType/:articleId이고 정적으로 생성된 페이지가 없는 페이지에 액세스하려는 모든 사용자는 이 폴백 페이지(따라서 fallbackArticlesComponent.tsx 구성 요소)의 콘텐츠에 액세스할 수 있습니다.
따라서 기사의 내용을 가져오려면 이 구성 요소에서 API(또는 CMS)를 호출해야 합니다.
또한 요청이 결과를 찾지 못했을 때 이 페이지에서 동작을 준비해야 합니다. 예를 들어 사용자가 페이지 article/typeThatDoesNotExist/IdThatDoesNotExist에 액세스하려는 경우 대체 페이지에 "떨어질"것이기 때문입니다.
그런 다음 404 페이지(navigate(
/404 , { replace: true })
포함)로 리디렉션하거나 "안타깝게도 이 문서는 존재하지 않습니다."와 같은 오류를 표시하도록 선택할 수 있습니다.
의견에 자유롭게 질문하십시오. 기꺼이 답변하겠습니다.
Reference
이 문제에 관하여(Gatsby의 폴백 클라이언트 측 경로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kezios/fallback-client-side-route-in-gatsby-40o0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
actions.createPage({
path,
matchPath: "articles/:articleType/:articleId",
component: "fallbackArticlesComponent.tsx",
context: {
//The necessary context for your template
},
})
Reference
이 문제에 관하여(Gatsby의 폴백 클라이언트 측 경로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kezios/fallback-client-side-route-in-gatsby-40o0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)