Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails 4.2中,从网络上的另一台计算机访问本地主机_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 在rails 4.2中,从网络上的另一台计算机访问本地主机

Ruby on rails 在rails 4.2中,从网络上的另一台计算机访问本地主机,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,因此,为了从同一网络上的另一台机器访问本地服务器,您需要在rails 4.2中使用0.0.0.0:3000作为localhost的地址。如果我用rails s-b 0.0.0.0-p 3000启动服务器,我确实可以从另一台机器访问,使用主机ip地址后跟:3000。但是,这些资产没有显示出来。我已尝试在development.rb中设置config.asset\u host='0.0.0:3000',并重新启动服务器,但这没有帮助 那么,如何从远程机器加载资产呢?控制台显示以下错误 GET htt

因此,为了从同一网络上的另一台机器访问本地服务器,您需要在rails 4.2中使用0.0.0.0:3000作为localhost的地址。如果我用rails s-b 0.0.0.0-p 3000启动服务器,我确实可以从另一台机器访问,使用主机ip地址后跟:3000。但是,这些资产没有显示出来。我已尝试在development.rb中设置
config.asset\u host='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的页面,即192.168.0.9的
开始“/”如果您有
LINUX
UNIX
发行版,打开终端并点击

ifconfig
然后找到像eg这样的inet地址

inet 192.168.0.113 netmask 0xffffff00 broadcast 192.168.0.255 
然后从同一网络中的另一台机器上,您可以在浏览器中点击下面的按钮

192.168.0.113:3000
现在,您将能够从不同的机器上运行应用程序


希望这能对您有所帮助。

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

config.asset_host = '192.168.0.17:3000'

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

为什么不尝试绑定到主机IP而不是0.0.0.0.0 ie.rails s-b-p 3000I尝试过了,谢谢,但是资产仍然没有加载。请尝试直接调用远程服务器上的某些资产文件,如果您在生产环境中运行,您的Web服务器可能不提供静态资产…这可能是资产预编译问题吗?为什么不试试
rake资产:预编译
。虽然在开发环境中,这应该不是问题。我尝试了
rakeassets:precompile
,但这并没有帮助。我几乎可以肯定是在开发模式下运行的,config/environments/development.rb在服务器启动时执行。我已经尝试过了,网站也加载了,但资产没有加载。是否在
development env
中执行?请尝试在
development.rb
中使用此
config.service\u static\u assets=true
。我尝试了config.service\u static\u assets=true,但没有帮助。确定。请打开浏览器控制台并清除错误,然后刷新页面并在此处发布错误列表。好主意。我无法在注释中正确设置输出格式,因此将其添加到上面的主要问题中。