jekyll НЕ конвертирует site.url в http://localhost:4000 согласно документации

может ли кто-нибудь помочь мне понять, почему site.url НЕ меняется на http://localhost:4000 в соответствии с документация? Он отражает параметр URL в _config.yml. Я проверил и jekyll.environment = development.

Я развернул новый проект Jekyll на другой машине, и результаты те же.


person user16270045    schedule 19.06.2021    source источник


Ответы (2)


Эта функция отключена в версии 4.2.0< /а>. Какая это была пустая трата времени.

Вот обходной путь.

person user16270045    schedule 20.06.2021
comment
Хороший улов. Проголосовал. - person VonC; 20.06.2021
comment
Я отредактировал свой ответ и предложил обходной путь; - person VonC; 20.06.2021
comment
Точно: я только что нашел точно такое же обходное решение, на которое явно ссылается и подробно описано в моем ответе. - person VonC; 20.06.2021

В этой документации упоминается:

Он не будет установлен, если вы установите JEKYLL_ENV=production и запустите jekyll serve.

Если JEKYLL_ENV имеет любое значение, кроме development (значение по умолчанию), Jekyll не перезапишет значение URL в вашей конфигурации.
И опять же, это относится только к обслуживанию, а не к созданию.

Так что перепроверьте свое значение JEKYLL_ENV и свою команду (jekyll serve)

ОП указывает на jekyll/jekyll PR 7253 в jekyll v4.2.0

Локальные тесты показывают, что локальный сервер предварительного просмотра основан на значениях config["host"] и config["port"]. Таким образом, даже если config["url"] == https://jekyllrb.com, сайт будет обслуживаться с настройками по умолчанию: //127.0.0.1:4000

Это упрощает рабочий процесс пользователей, поскольку им не нужно заново создавать сайт с помощью JEKYLL_ENV=production
(если только их шаблоны не предназначены для разного рендеринга для двух переменных ENV, а это совсем другая история).

Это, однако, находится в процессе отмены: PR 8620

Документация на jekyllrb.org не была обновлена, чтобы отразить это изменение в поведении.

Это изменение не повлияло на случаи, когда URL-адрес локального сервера был явно установлен через bundle exec jekyll serve --host localhost --port 4000 как localhost:4000 или когда он был установлен как любая другая комбинация хостов или портов.

Это изменение затронуло только значение по умолчанию jekyll serve, которое является действием локальной разработки, рекомендованным в документации Jekyll.

Так что это может быть обходным путем в вашем случае:

bundle exec jekyll serve --host localhost --port 4000
person VonC    schedule 20.06.2021
comment
Я упомянул в своем посте, что переменная jekyll.environment имеет значение development. Я не знаю, как еще это проверить, так как в документации не указано, что это за переменная JEKYLL_ENV. Это переменная окружения? Переменная сайта? В любом случае, я думаю, что он установлен правильно. - person user16270045; 20.06.2021
comment
@user16270045 user16270045 Точно: en переменная среды. Введите env в Linux или set в Windows, чтобы проверить, установлена ​​ли эта переменная среды. - person VonC; 20.06.2021
comment
Я ценю ваши отзывы. Я установил переменную, и результаты такие же. Я уверен, что это правильная переменная, потому что я вижу результаты, когда вывожу {{site.url}}. Я все еще получаю настройки _config.yml, а не http://localhost:4000/. - person user16270045; 20.06.2021
comment
@ user16270045 Какую ОС и версию ОС вы используете? Какая версия оболочки? И вы вводите jekyll serve в той же CMD/оболочке, где вы видите переменную среды JEKYLL_ENV, установленную на development? (Какую версию jekyll вы используете?) - person VonC; 20.06.2021
comment
@user16270045 user16270045 Работает ли python (3), как в stackoverflow.com/a/59392477/6309? - person VonC; 20.06.2021
comment
Смотрите мой ответ. Эта функция отключена в версии 4.2.0. Спасибо за помощь. - person user16270045; 20.06.2021