Pet*_*ack 10 ruby ruby-on-rails ipad
主机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
港口:3000
现在192.168.1.2.dev工作!有点...
我现在可以登录到我的网站,但是js似乎被破坏了,ipad将网址更改为:(http://2.dev/page)通常它会是(http://localhost.dev:3000/page)我认为这是主机局域网的最后一位数.我们使用一些外部托管的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'
Run Code Online (Sandbox Code Playgroud)
所以我想我必须启用linux来转发我的互联网?
Ste*_*fan 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
Run Code Online (Sandbox Code Playgroud)假设您已启用iCloud选项卡,请使用Safari访问Mac上的URL(这样您就不必在iPad上手动输入地址)
在iPad/iPhone上,打开Safari,点击Tabs图标,向下滚动并选择Rails选项卡:

完成:

如果我是你,我会尝试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.
我得到以下输出:
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
Run Code Online (Sandbox Code Playgroud)
在您的 ipad 中输入转发地址。为了我,http://014da213.ngrok.io
无需配置!
我不确定你所使用的Ruby on Rails版本是什么,但在版本4附近,Rails将默认绑定地址从0.0.0.0仅更改为localhost.默认情况下,这允许您仅通过localhost:3000或访问Rails应用程序127.0.0.1:3000- 在大多数情况下这很好.
现在,如果您想从本地网络上的iPad(或本地网络上的任何设备)访问该应用程序,您可以-b在启动服务器时使用该选项并指定绑定地址0.0.0.0
rails s -b 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
这将绑定在所有接口上,包括localhost和网络分配的IP.您现在应该可以通过iPad访问该应用程序.希望这可以帮助.
192.168.1.6是一个 IP 地址,例如您的计算机在本地网络上的地址。
:3000是一个端口号(好吧,3000 是这个数字,“:”只是将它与 IP 地址分开),在本例中是 Rails 运行的端口。
localhost.dev是在您的计算机上设置的别名,可能127.0.0.1是标准的“这台计算机,即‘本地主机’”IP 地址。
我根本没想到192.168.1.2.dev会起作用,因为它不是一个有效的 IP 地址 - 它是一个 IP 地址,末尾带有您的别名的最后一位。
您应该在 iPad 上使用“192.168.1.2:3000”连接到本地计算机的 Rails 服务器。您不需要更改代理设置(因此将它们设置回正常状态)。
如果您特别想在 iPad 上使用特定域名(当您访问 Rails 应用程序时),如果您的应用程序根据访问的域或子域以不同方式显示站点,那么您可以使用太棒了http://xip.io/。但这可能比您需要的更复杂,听起来您只是想看看您的 Rails 应用程序在 iPad 上是什么样子。