program story

jekyll 로컬 개발 중에 site.url을 localhost로 변경하십시오.

inputbox 2020. 10. 27. 08:09
반응형

jekyll 로컬 개발 중에 site.url을 localhost로 변경하십시오.


내 jekyll 블로그 템플릿에는 다음과 같은 리소스 및 페이지에 대한 링크가 있습니다.

{{ site.url }}/my-page.html

이것은 배포에서 잘 작동하지만 jekyll serve개발 중에 실행 하면 모든 링크가 개발 페이지 대신 라이브 페이지를 가리 킵니다.

my-site-url/my-page.html

# But I want this in development
localhost:4000/my-page.html

지킬 {{ site.url }}이 개발 에서 다른 것을 사용하도록 만드는 방법이 있습니까?


이것은 서로 다른 Jekyll 환경 간의 공통적 인 문제입니다.

몇 가지 설명

우리는 이해할 필요 site.url하고 site.baseurl어느 상황에서 우리가 필요합니다. 이러한 변수는 동일한 용도로 사용되지 않습니다.

site.url

기본적으로이 변수는 canonical헤더 및 RSS link. 또한이 피드를 관리하는 소프트웨어가 리소스의 URL을 알지 못하므로 xml 피드에서 사이트 리소스를 가리키는 데 사용됩니다.

이 변수는 외부 시스템에만 필요합니다.

site.baseurl

이 변수는 Jekyll 사이트의 루트 폴더를 나타냅니다. 기본적으로 ""(빈 문자열)로 설정됩니다 . 즉, Jekyll 사이트가 http://example.com.

에 지킬 사이트의 삶을 경우 http://example.com/blog, 당신은 설정해야 site.baseurl/blog( 슬래시주의 ). 이렇게하면 자산 (css, js)이 올바르게로드됩니다.

자산이 어떻게로드되는지 확인하십시오.

<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">

또한 다음과 같습니다.

<link rel="stylesheet" href="{{ site.baseurl }}/css/main.css">

다른 환경에서 작업

이제 사이트를 로컬에서 테스트하고 프로덕션에 배포해야합니다. 때때로는 baseurl다른과는 jekyll build그 환경 중 하나에 상자 밖으로 작동하지 않을 수 있습니다.

여기에 두 가지 해결책이 있습니다.

사용하다 jekyll serve

사이트가 github 저장소에 있고 https://username.github.io/myProject.

당신은 설정 (가) 수 baseurl/myProject. 를 사용하여 로컬에서 사이트를 테스트 jekyll serve하면 사이트가http://127.0.0.1:4000/myProject/

여러 구성 파일 사용

어떤 이유로 든을 사용할 수없는 경우 jekyll serve두 환경 및 jekyll build배포 위치에 따라 구성 파일을 설정할 수 있습니다 .

로컬 사이트가에서 제공되고 http://localhost프로덕션 사이트가 에서 제공된다고 가정 해 보겠습니다 https://username.github.io/myProject.

우리는 떠나 _config.yml함께 url: https://username.github.io하고baseurl: /myProject

우리는 _config_dev.yml오직 url: https://localhost그리고baseurl: ""

이제 로컬에서 테스트합니다.

jekyll build --config _config.yml,_config_dev.yml

또는

jekyll build --config _config.yml,_config_dev.yml --watch

프로덕션에 푸시되면 jekyll build명령은 기본값 인 _config.yml.

참고 URL : https://stackoverflow.com/questions/27386169/change-site-url-to-localhost-during-jekyll-local-development

반응형