Изменить сайт.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 }} в развитии?

1 66

1 ответ:

это общая проблема между различными средами Jekyll.

объяснения

мы должны понять site.url и site.baseurl и в какой ситуации они нам нужны. Эти переменные не служат той же цели.

site.url

по умолчанию эта переменная используется только в голову страницы и RSS link. Он также используется в XML-канале для указания ресурсов сайта в качестве программного обеспечения, которое будет управлять этим канал не знает URL-адреса ресурса.

эта переменная необходима только для внешних систем.

site.baseurl

эта переменная указывает корневую папку вашего сайта Jekyll. По умолчанию установлено значение "" (пустая строка). Это означает, что ваш сайт Jekyll находится в корне http://example.com.

если ваш сайт Jekyll живет в 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.