能否在本地服务于多个 Jekyll 网站?

34
每次我通过命令行启动Jekyll网站时,它都会在4000端口上提供服务。同一端口无法提供两个网站的服务。
是否有可能在本地同时提供多个Jekyll网站?

Jekyll中的服务器无法替代专用服务器。 - user3791372
@user3791372,注意这里的作用域是局部的。 - Brian Zelip
6个回答

40

你也可以使用额外的参数 --port 1234--host 主机名 来启动服务器。例如:

$ jekyll serve --port 4001 --host my_hostname_or_ip

您可以从Jekyll官方文档中查看所有可能的CLI标志。


嘿,--port 在某些区域中不起作用。过滤器 {% link %} 将忽略端口。因此,指向 dev-env 页面的链接将会失效。有什么好的解决方法吗? - KargWare

11

通过设置每个站点的不同端口号,可以使用本地服务器端口serve命令选项为多个Jekyll站点提供服务。

请参见https://jekyllrb.com/docs/configuration/options/#serve-command-options

在站点的_config.yml文件中或通过命令行启动站点时,将端口号设置为Jekyll默认端口(4000)以外的其他端口。


1
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。仅有链接的答案如果链接页面发生更改可能会变得无效。 - Jim Stewart
10
根据文档,在您的 _config.yml 文件中添加例如 port: 4001 - Jim Stewart

6

对于多个Jekyll网站,我只需运行以下命令:

bundle exec jekyll serve --port <你的端口号>

例如:

bundle exec jekyll serve --port 4001


3

如果您在 Mac 上运行 Docker 客户端,将主机 IP 0.0.0.0 提供给它会极大地节省您的时间。

jekyll serve --port 4001 --host 0.0.0.0

默认情况下,127.0.0.1 用于本地主机,它的NIC无法接收来自您的Mac主机的任何流量,而 0.0.0.0 表示在所有NIC上接受流量。


如果你给我点踩,请告诉我原因。我想学习! - Izana

3
打开终端,进入Jekyll网站目录并启动服务器。
jekyll serve --port 4001

前往另一个目录并启动第二个站点

jekyll serve --port 4002

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接