하루의 기록

소프트웨어 개발과 독서와 이런 저런 관심사 늘어놓기

TIL - Github Pages 배포 문제 해결

TIL

  • Github Pages로 정적 사이트를 배포할 때, .nojekyll 파일을 사이트 루트에 추가해 두면 Github에서 Jekyll 빌드를 건너뛸 수 있다.
  • gh-pages로 사이트를 배포할 때, dotfile을 함께 배포하려면 -t 또는 --dotfile 옵션을 사용해야 한다.

Github Pages 배포 문제 해결

어제 오랜만에 포스트를 쓰고 사이트를 배포했다. 그런데 한참을 기다려도 새 글이 표시되지 않아서 메일함을 확인하니 Github에서 다음과 같은 페이지 빌드가 실패했다는 메일이 와있었다.

The page build failed for the master branch with the following error: The variable {{n(n+1)} on line 50 in static/2017-11-07-with-mathjax-c011d849efe2e756b8432f043c8f6c4a.md was not properly closed with }}. For more information, see https://help.github.com/en/github/working-with-github-pages/troubleshooting-jekyll-build-errors-for-github-pages-sites#tag-not-properly-terminated.

For information on troubleshooting Jekyll see:

https://help.github.com/articles/troubleshooting-jekyll-builds

If you have any questions you can contact us by replying to this email.

이 에러의 가장 이상한 점은 내 블로그는 Jekyll 빌드를 거칠 필요가 없는데 Github에서 이를 시도했다는 점이다.

Bypassing Jekyll on GitHub Pages

에 따르면 사이트 루트에 .nojekyll 파일을 추가하여 Jekyll 빌드를 막을 수 있다고 한다.

블로그의 배포 저장소 루트에 .nojekyll 파일을 추가하려면 블로그 소스 저장소의 static 폴더 안에 .nojekyll 파일을 추가해주면 된다.

다만 gh-pages이 기본적으로 dotfile을 배포에 포함하지 않으므로 -t 또는 --dotfile 옵션을 추가해줘야 한다.

이 방법으로 문제가 해결되었으나 참고했던 글에 따르면 .nojekyll이 항상 필요한 것은 아니고 _(underscore)로 시작되는 파일이라 디렉토리가 있는 경우에만 필요하다고 되어 있다.

This should only be necessary if your site uses files or directories that start with underscores since Jekyll considers these to be special resources and does not copy them to the final site.

내 블로그에는 그런 파일이나 디렉토리가 없는데도 Jekyll 빌드를 시도했다니 참으로 미스테리하다.

우선은 안전하게 .nojekyll을 추가해두는 편이 좋겠다.

이전 글: 마크다운 파일에서 포스트 생성하기
다음 글: 2019년 TSG 모임을 돌아보며
© 2014-2023 Jahyun Oh / Gatsby로 만듬