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 instatic/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
을 추가해두는 편이 좋겠다.