Ruby 使用LAN中的移动设备连接到本地构建的Jekyll服务器
在一台计算机上使用Ruby 使用LAN中的移动设备连接到本地构建的Jekyll服务器,ruby,github,jekyll,webrick,Ruby,Github,Jekyll,Webrick,在一台计算机上使用jekyll-serve后,将设置一台WEBrick服务器,并可在此特定PC上从localhost:4000访问该站点 但是,我想知道如何从局域网中的其他机器(尤其是移动设备)访问此web服务器?在将代码推送到Github之前,我正在尝试在移动设备上测试jekyll站点。在命令行上调用jekyll时,尝试使用jekyll服务--host=0.0.0.0 这将使Jekyll的HTTP服务器绑定到所有可用的IP,而不仅仅是绑定到localhost 您还可以使用主机:0.0.0.0将
jekyll-serve
后,将设置一台WEBrick服务器,并可在此特定PC上从localhost:4000
访问该站点
但是,我想知道如何从局域网中的其他机器(尤其是移动设备)访问此web服务器?在将代码推送到Github之前,我正在尝试在移动设备上测试jekyll站点。在命令行上调用jekyll时,尝试使用jekyll服务--host=0.0.0.0
这将使Jekyll的HTTP服务器绑定到所有可用的IP,而不仅仅是绑定到localhost
您还可以使用主机:0.0.0.0
将其添加到您的\u config.yml
。GitHub在推送时会忽略这一点,所以如果您不介意在网络上公开访问您的工作,那么使用它是安全的
如果不使用
--host=0.0.0.0
Jekyll将在您启动时输出如下内容:
$ jekyll serve
[...]
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
但是使用--host=0.0.0.0
(或\u config.yml
中的主机:0.0.0.0
)时,您会注意到它正在侦听所有接口(由0.0.0
表示),而不是只侦听环回接口(由127.0.0.1
表示)
如果您仍然无法访问服务器,则可能有防火墙阻止它。暂时禁用防火墙,或为端口4000添加端口转发规则
一旦Jekyll正确地监听了所有接口,您就可以使用LAN IP地址(根据您的操作系统,从
ifconfig
或ipconfig
之类的内容检索)从移动设备访问该接口。假设您的移动设备连接到与您的开发机器相同的LAN
这就是我在笔记本电脑和iPhone上为Jekyll dev所做的操作。启动服务器时是否需要指定
--host=0.0.0.0
?(我现在无法测试。)@user1177636,不,不需要,只需jekyllservice
。这将启动WebBrick服务器,可用于任何本地设备或机器。顺便说一句,我假设您运行的是Jekyll>=1.0.0,对于旧版本,命令是不同的。如果在没有指定--host=0.0.0.0的情况下使用它对我来说不起作用,请运行jekyll--server
。你用来修复它的防火墙设置是什么?对我来说,运行jekyllserve
也不起作用。我的移动设备无法访问服务器,除非我按了jekyll-serve--host=0.0.0
。有人对此有解释吗?@fraxture-jekyll-serve默认在本地主机(127.0.0.1)上侦听,它只能通过运行它的机器上的环回适配器访问。通过告诉它绑定到0.0.0.0,您告诉它绑定到所有接口,因此它绑定到您的(以太网/无线等)接口,因此也可以通过lan端访问。第一部分按照指示工作(jekyll 2.5.3),没有测试第二部分(关于配置文件中的条目)。要访问您的站点,在您的其他计算机/移动设备上,键入进行托管的计算机的ip。(大概是192.168.1.5:4000)。这里有一种方法可以找到你的ip:但是它会用{{site.url}破坏所有的图像,因为它们指向http:0.0.0.0:4000,而http:0.0.0:4000并没有在主机中打开。这并不能完全回答这个问题,要使用的地址是什么?localhost:4000或0.0.0.0:4000或其他什么?@Andy,这是你电脑的局域网IP地址,例如192.168.0.100:4000。
$ jekyll serve --host=0.0.0.0
[...]
Server address: http://0.0.0.0:4000/
Server running... press ctrl-c to stop.