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