2

谁能帮我弄清楚为什么 site.url 没有http://localhost:4000按照文档更改?它反映了 _config.yml 中的 url 参数。我已经检查并 jekyll.environment = development。

我在另一台机器上启动了一个新的 Jekyll 项目,结果是一样的。

4

2 回答 2

2

此功能已在4.2.0 版本中禁用。这是多么浪费时间啊。

这是一种解决方法。

于 2021-06-20T17:28:17.953 回答
0

该文档确实提到:

如果您设置并运行,它将不会被设置。JEKYLL_ENV=productionjekyll serve

如果JEKYLL_ENV是除development(其默认值)之外的任何值,Jekyll 不会覆盖您配置中 URL 的值。
再说一次,这仅适用于服务,不适用于建造。

因此,请仔细检查您的 JEKYLL_ENV值和您的命令 ( jekyll serve)

OP在jekyll v4.2.0中指出jekyll/jekyllPR 7253

本地测试表明本地预览服务器基于config["host"]config["port"]值.. 因此,即使config["url"] == https://jekyllrb.com,该站点也将以默认设置提供服务://127.0.0.1:4000

这简化了用户的工作流程,无需再次构建站点JEKYLL_ENV=production
(除非他们的模板设计为针对两个 ENV vars 以不同方式呈现,这完全是另一回事)

然而,这正在被恢复:PR 8620

jekyllrb.org 上的文档没有更新以反映这种行为变化,

该更改不会影响本地服务器 URL 通过显式设置bundle exec jekyll serve --host localhost --port 4000为的情况localhost:4000,或者将其设置为主机或端口的任何其他组合的情况。

该更改仅影响了 default jekyll serve,这是 Jekyll 文档中推荐的本地开发操作。

因此,在您的情况下,这可能是一种解决方法:

bundle exec jekyll serve --host localhost --port 4000
于 2021-06-20T00:19:31.373 回答