Deployment(배포)
Table of contents
Gemfile
사이트에 Gemfile을 사용하는 것이 좋습니다. 이렇게 하면 Jekyll 및 기타 gem의 버전이 다양한 환경에서 일관되게 유지됩니다. 다음을 사용하여 루트에 Gemfile을 만듭니다.
source 'https://rubygems.org'
gem 'jekyll'
그런 다음 터미널에서 bundle install
를 실행하십시오. 그러면 젬이 설치되고 향후 bundle install
를 위해 현재 젬 버전을 잠그는 Gemfile.lock
이 생성됩니다. 젬 버전을 업데이트하려면 bundle update
를 실행할 수 있습니다.
Gemfile을 사용할 때 bundle exec
접두사가 붙은 jekyll serve
와 같은 명령을 실행합니다. 따라서 전체 명령은 다음과 같습니다.
bundle exec jekyll serve
이렇게 하면 Gemfile
에 설정된 젬만 사용하도록 Ruby 환경이 제한됩니다.
Plugins
Jekyll 플러그인을 사용하면 사이트에 특정한 사용자 정의 생성 콘텐츠를 만들 수 있습니다.
사용 가능한 plugins이 많거나 직접 작성할 수도 있습니다.
거의 모든 Jekyll 사이트에서 유용한 세 가지 공식 플러그인이 있습니다.
- jekyll-sitemap - engines index content을 찾는 것을 돕는 sitemap 파일을 만든다.
- jekyll-feed - post용 RSS feed를 만듭니다.
- jekyll-seo-tag - SEO에 도움이되는 메타 태그를 추가합니다.
먼저 이것을 사용하려면 Gemfile
에 추가해야합니다.
jekyll_plugins
그룹에 넣으면 자동으로 Jekyll에 필요하게 됩니다.
source 'https://rubygems.org'
gem 'jekyll'
group :jekyll_plugins do
gem 'jekyll-sitemap'
gem 'jekyll-feed'
gem 'jekyll-seo-tag'
end
그리고 _config.yml
에 다음 라인을 더한다:
plugins:
- jekyll-feed
- jekyll-sitemap
- jekyll-seo-tag
이제 bundle update
를 실행하여 그들을 설치하십시오.
jekyll-sitemap
은 설정이 필요하지 않으며 빌드시 사이트 맵을 생성합니다.
jekyll-feed
및 jekyll-seo-tag
의 경우 _layouts/default.html
에 태그를 추가해야합니다.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>{{ page.title }}</title>
<link rel="stylesheet" href="/assets/css/styles.css">
{% feed_meta %}
{% seo %}
</head>
<body>
{% include navigation.html %}
{{ content }}
</body>
</html>
Jekyll 서버를 다시 시작하고 이 태그가 <head>
에 더해졌는지 체크하라.
Environments
때로는 프로덕션에서는 출력하고 싶지만 개발 중에는 출력하지 않을 수도 있습니다. 분석 스크립트가 가장 일반적인 예입니다. 이를 위해 environments을 사용할 수 있습니다. 명령을 실행할 때 JEKYLL_ENV
환경 변수를 사용하여 환경을 설정할 수 있습니다. 예를 들어:
JEKYLL_ENV=production bundle exec jekyll build
기본적으로 JEKYLL_ENV
는 개발입니다. JEKYLL_ENV
은 jekyll.environment
를 사용하여 liquid에서 사용할 수 있습니다. 따라서 프로덕션에서만 분석 스크립트를 출력하려면 다음을 수행합니다.
{% if jekyll.environment == "production" %}
<script src="my-analytics-script.js"></script>
{% endif %}
Deployment
마지막 단계는 사이트를 프로덕션 서버로 가져오는 것입니다. 이 작업을 수행하는 가장 기본적인 방법은 프로덕션 빌드를 실행하는 것입니다.
JEKYLL_ENV=production bundle exec jekyll build
그리고 _site
의 내용을 서버에 복사하십시오. 더 좋은 방법은 CI , 3rd party를 사용하여 이 프로세스를 자동화하는 것입니다.
Wrap up
배포 상세
ekyll 을 사용해 빌드한 사이트는 그 결과물의 정적인 특성 덕분에 여러가지 방법으로 배포할 수 있습니다. 여기 가장 보편적인 방법 몇 가지를 소개합니다: