从rails 4.2中的网络上的另一台机器访问本地主机

时间:2015-07-15 01:38:17

标签: ruby-on-rails ruby ruby-on-rails-4

根据此post,为了从同一网络上的另一台计算机访问本地服务器,您需要使用0.0.0.0:3000作为rails 4.2中localhost的地址。如果我用rails s -b 0.0.0.0 -p 3000启动服务器,我确实可以从另一台机器访问,使用主机IP地址后跟:3000。但是,资产没有显示。我已经尝试在development.rb中设置config.asset_host = '0.0.0.0:3000'并重新启动服务器,但这没有帮助。

那么如何从远程计算机加载资产?控制台显示以下错误

GET http://localhost:3000/assets/application.css net::ERR_CONNECTION_REFUSED
192.168.0.57/:24 
GET http://localhost:3000/assets/application.js net::ERR_CONNECTION_REFUSED
192.168.0.57/:83 
GET http://localhost:3000/assets/infographic.png net::ERR_CONNECTION_REFUSED
192.168.0.57/:106 
GET http://localhost:3000/assets/analysis-thumb.png net::ERR_CONNECTION_REFUSED
192.168.0.57/:121 
GET http://localhost:3000/assets/chart-thumb.png net::ERR_CONNECTION_REFUSED
localhost:3000/images/favicon.ico:1 
GET http://localhost:3000/images/favicon.ico net::ERR_CONNECTION_REFUSED
gingerEditor.min.js:21 
Running Ginger Widget  version 0.1.0.585
localhost:3000/images/favicon.ico:1 
GET http://localhost:3000/images/favicon.ico net::ERR_CONNECTION_REFUSED

在这种情况下,主机位于192.168.0.57:3000。服务器日志表示加载的页面为192.168.0.9,即Started GET "/" for 192.168.0.9

2 个答案:

答案 0 :(得分:1)

如果您有LINUXUNIX发行版,请打开终端并点击

ifconfig

然后查找inet地址,例如。

inet 192.168.0.113 netmask 0xffffff00 broadcast 192.168.0.255 

然后从同一网络中的另一台机器,您可以在浏览器中点击下面

192.168.0.113:3000

现在您可以从不同的计算机上运行您的应用程序。

希望这会对你有帮助。

答案 1 :(得分:1)

我通过将config.asset_host设置为主机的地址来解决这个问题。因此,如果主机是192.168.0.17,那么在config/development.rb中您需要以下行:

config.asset_host = '192.168.0.17:3000'

这并不理想,这意味着每次要打开开发服务器时都需要更改development.rb文件,方法是将其绑定到0.0.0.0:3000