Ruby on rails 通过本地网络将Ruby/Rails连接到ipad
主机ip:192.168.1.2 ipad ip:192.168.1.3 在我的主机上工作时,网址是:localhost.dev:3000/sign\u in/ 当我试图通过192.168.1.2.dev:3000/sign_连接到我的ipad时,连接超时 解决我的问题的一个方法是将ipad上的wifi设置更改为手动代理: 服务器:192.168.1.2 港口:3000 现在192.168.1.2.dev工作了!有点 我现在可以登录到我的网站了,但是js似乎坏了,ipad将url改为:(),通常是(),我相信这是主机lan ip的最后一个数字。我们使用一些外部托管的js文件。这可能就是它断裂的原因。启用代理时,我无法(在ipad上)浏览互联网。我错过了什么Ruby on rails 通过本地网络将Ruby/Rails连接到ipad,ruby-on-rails,ruby,ipad,Ruby On Rails,Ruby,Ipad,主机ip:192.168.1.2 ipad ip:192.168.1.3 在我的主机上工作时,网址是:localhost.dev:3000/sign\u in/ 当我试图通过192.168.1.2.dev:3000/sign_连接到我的ipad时,连接超时 解决我的问题的一个方法是将ipad上的wifi设置更改为手动代理: 服务器:192.168.1.2 港口:3000 现在192.168.1.2.dev工作了!有点 我现在可以登录到我的网站了,但是js似乎坏了,ipad将url改为:(),通常
(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也能转发我的internet?
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应用程序时),如果你的应用程序根据其访问的域或子域显示不同的站点,这可能会很有用,那么你可以使用awesome。这可能比你需要的更复杂,听起来你只是想看看你的rails应用在ipad上的样子。如果我是你,我会试试。这样,您就可以临时安全地将您的开发机器的localhost:3000公开到ipad上。将ngrok下载到应用程序的文件夹中,然后
解压缩/path/to/ngrok.zip
对我来说,这看起来像:
解压缩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
不需要配置 Rails不可访问,因为服务器绑定到localhost 下面是我通常使用/Bonjour和macosx的工作流程,尽管它基本上也应该与另一个操作系统和/或固定的IP地址一起工作
config/environments/development.rb
中,这样您就可以使用该名称访问服务器,例如:(Rails 6+需要此名称,请参阅:Blocked host Error)
我不确定您使用的是哪个RubyonRails版本,但在版本4左右,Rails将默认绑定地址从
0.0.0
更改为仅localhost
。默认情况下,这只允许您通过localhost:3000
或127.0.0.1:3000
访问Rails应用程序,这在大多数情况下都很好
现在,如果您想从本地网络(或本地网络上的任何设备)上的iPad访问应用程序,您可以在启动服务器时使用-b
选项,并指定绑定地址0.0.0
rails s -b 0.0.0.0
这将绑定到所有接口,包括本地主机和网络分配的IP。您现在应该可以通过iPad访问该应用程序。希望这有所帮助。“现在192.168.1.6.dev可以工作了!“-6?抱歉..我会更改输入错误。尝试将
192.168.1.2 rubyhost.dev
放入iPad上的/etc/hosts
文件中,然后导航到rubyhost.dev:3000
。这是一台工作版iPad。我不能越狱。另外,为它开发一些东西感觉真的很奇怪。苹果……唉..主机别名
可能会帮助你。”.168.1.2:3000不能在任何机器上运行。Ipad或localhost。localhost:3000也不能在localhost上运行。奇怪的是,您的本地计算机甚至不能通过网络连接到自己。您确定您有正确的IP地址吗?您如何获取地址?地址是192.168.1.2。我尝试按照您的说明进行操作,但是它告诉我要设置ngrok…所以我按照帮助说明和我的ngrok服务器日志:(GET/302 Found)但是它会将ipad重定向到ngrok.com我不知道你更改了什么,但按照说明总是重定向到ngrok.com。/ngrok to./ngrok http 3000,它会告诉ngrok要听什么。你在使用http还是https?你的隧道状态是什么?你的输出看起来像我的吗?你能在运行ngrok时访问门户网站吗?转到localhost:4040,看看发生了什么。检查这里的文档我和创建者谈了一会儿..我(有点)让它启动并运行..但我仍然会出错..很酷的程序tho!通过pageRails 6+提问时的响应时间很长,你会发现不是所有的问题
$ 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
rails s -b 0.0.0.0