Изменить сайт.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 ответ:
это общая проблема между различными средами 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
.