主持人ip:192.168.1.2
ipad ip:192.168.1.3
在我的主机上工作时,网址是:localhost.dev:3000/sign_in/ 当我尝试通过192.168.1.2.dev:3000/sign_in连接到我的ipad时连接超时。
克服我的问题的一种方法是将ipad上的wifi设置更改为手动代理:
服务器:192.168.1.2
port:3000
现在192.168.1.2.dev有效!有点...
我现在可以登录我的网站了,但是js似乎被破坏了,ipad将网址更改为:(http://2.dev/page)通常会是(http://localhost.dev:3000/page)我认为是最后一个主机lan ip的数字。我们使用一些外部托管的js文件。这可能是它破裂的原因。启用代理时,我无法浏览互联网(在ipad上)。我错过了什么?
(192.168.1.2:3000不适用于任何设备..)
经过进一步调试后,我认为这是因为通过代理的互联网连接。
我的日志吐出的确切错误是:
CONNECT configuration.apple.com:443 HTTP/1.1
Host: configuration.apple.com
User-Agent: ubd/289.3 CFNetwork/672.1.14 Darwin/14.0.0
Connection: keep-alive
Proxy-Connection: keep-alive
2015-04-20 11:52:54] ERROR TypeError: can't dup NilClass
/home/pete/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httprequest.rb:279:in `dup'
所以我认为我必须启用linux才能转发我的互联网?
答案 0 :(得分:11)
无法访问Rails,因为服务器绑定到 localhost 。
这是我使用zeroconf / Bonjour和Mac OS X的常用工作流程,虽然它基本上可以与其他操作系统和/或固定IP地址一起使用。
打开系统偏好设置>共享以查找计算机的.local名称:
使用rails server
选项启动-b
以提供主机名(这是重要部分):
$ rails s -b stefans-mac.local
=> Booting Thin
=> Rails 4.2.1 application starting in development on http://stefans-mac.local:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
>> Thin web server (v1.5.1 codename Straight Razor)
>> Maximum connections set to 1024
>> Listening on stefans-mac.local:3000, CTRL+C to stop
假设您已启用iCloud Tabs,请使用Safari访问Mac上的网址(这样您就不必在iPad上手动输入地址)
在iPad / iPhone上,打开Safari,点击Tabs图标,向下滚动并选择Rails选项卡:
完成:
答案 1 :(得分:5)
我不确定你所使用的Ruby on Rails版本是什么,但在版本4附近,Rails将默认绑定地址从0.0.0.0
更改为仅localhost
。默认情况下,您只能通过localhost:3000
或127.0.0.1:3000
访问Rails应用 - 在大多数情况下都可以。
现在,如果您想从本地网络上的iPad(或本地网络上的任何设备)访问该应用程序,则可以在启动服务器时使用-b
选项并指定绑定地址{ {1}}
0.0.0.0
这将绑定在所有接口上,包括localhost和网络分配的IP。您现在应该可以通过iPad访问该应用程序。希望这会有所帮助。
答案 2 :(得分:3)
如果我是你,我会尝试Ngrok。这样你就可以暂时安全地将你的开发机器的localhost:3000暴露给ipad。将ngrok下载到您应用程序的文件夹和unzip /path/to/ngrok.zip
。
对我来说,看起来像:
unzip ngrok_2.0.16_darwin_amd64.zip
然后运行rails s
。
最后./ngrok http 3000
。
此命令将为您提供从ipad命中的地址。当你完成后,用ctrl+c
杀死ngrok。
我得到以下输出:
NAME:
ngrok - tunnel local ports to public URLs and inspect traffic
ngrok by @inconshreveable (Ctrl+C to quit)
Tunnel Status online
Version 2.0.16/2.0.15
Web Interface http://127.0.0.1:4040
Forwarding http://014da213.ngrok.io -> localhost:3000
Forwarding https://014da213.ngrok.io -> localhost:3000
Connnections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
在ipad中输入转发地址。对我来说,http://014da213.ngrok.io
无需配置!
答案 3 :(得分:0)
192.168.1.6
是一个IP地址,例如本地网络上的计算机地址。
:3000
是一个端口号(好吧,3000是数字,":"只是将它与IP地址分开),在这种情况下是Rails运行的端口。
localhost.dev
是在您的计算机上设置的别名,可能是127.0.0.1
,这是标准的"此计算机,即本地主机'"" IP地址。
我不希望192.168.1.2.dev
完全工作,因为它不是一个有效的IP地址 - 它是一个ip地址,最后一个别名是你的别名
你应该使用" 192.168.1.2:3000"在您的ipad上连接到本地计算机的rails服务器。您不需要更改代理设置(因此请将其设置恢复正常)。
如果您特别想在ipad上使用特定的域名(当您访问rails应用程序时),如果您的应用根据通过其访问的域或子域以不同的方式显示网站,这可能很有用,那么您可以使用真棒http://xip.io/。这可能比你需要的更复杂,听起来你只是想看看你的rails应用程序在ipad上的样子。