如何在 rails 服务器启动时自动启动浏览器?
How to automatically launch browser when rails server starts?
有没有一种方法可以在您 运行 rails server
时自动启动浏览器并将其指向 http://localhost:3000
?
其次确保这只发生在开发中?
我原以为 Launchy 可以解决问题,但我正在努力弄清楚该把它放在哪里。
我试过添加初始化程序config/initializers/launchy.rb
require 'launchy'
Launchy.open("http://localhost:3000")
这会触发浏览器打开,创建一个新选项卡并按预期访问 http://localhost:3000
,但是在服务器/应用程序完成启动之前 运行s,我得到一个 浏览器无法连接服务器错误。
如果我在浏览器中重新加载,我的应用程序运行良好,所以我相信这不是我的应用程序的问题,而是 Launch.open
调用的时间问题。
我尝试将 launchy.rb
重命名为 z_launchy.rb
以便它根据 docs 最后加载,但仍然是同样的问题。 Launchy 在应用程序准备就绪之前触发。
我也试过将代码添加到 config/puma.rb
(我使用 puma 作为我的服务器),添加到 config/enviroments/developoment.rb
,但总是出现同样的问题。 Launchy.open
命令很快就会被调用。
我应该在哪里调用 Launchy.open("http://localhost:3000")
以确保 a) 在应用程序加载并准备好接收请求后 运行s;和 b) 所以它只有 运行 在开发中,而不是在测试或生产中?
系统设置 OS X 10.11.3,Rails 4.2.5,ruby 2.2.1p85,puma 版本 2.15.3
在 run Rails.application
行之后将其放入 config.ru
中即可。到 returns 时,您的应用已准备就绪。要运行它只在development
,勾选Rails.env
.
require ::File.expand_path('../config/environment', __FILE__)
run Rails.application
Launchy.open("http://localhost:3000") if Rails.env.development?
这很简单,但我觉得将它放在您的应用程序中很脏。最好是一个启动服务器的小脚本,稍等片刻,然后启动浏览器。
有没有一种方法可以在您 运行 rails server
时自动启动浏览器并将其指向 http://localhost:3000
?
其次确保这只发生在开发中?
我原以为 Launchy 可以解决问题,但我正在努力弄清楚该把它放在哪里。
我试过添加初始化程序config/initializers/launchy.rb
require 'launchy'
Launchy.open("http://localhost:3000")
这会触发浏览器打开,创建一个新选项卡并按预期访问 http://localhost:3000
,但是在服务器/应用程序完成启动之前 运行s,我得到一个 浏览器无法连接服务器错误。
如果我在浏览器中重新加载,我的应用程序运行良好,所以我相信这不是我的应用程序的问题,而是 Launch.open
调用的时间问题。
我尝试将 launchy.rb
重命名为 z_launchy.rb
以便它根据 docs 最后加载,但仍然是同样的问题。 Launchy 在应用程序准备就绪之前触发。
我也试过将代码添加到 config/puma.rb
(我使用 puma 作为我的服务器),添加到 config/enviroments/developoment.rb
,但总是出现同样的问题。 Launchy.open
命令很快就会被调用。
我应该在哪里调用 Launchy.open("http://localhost:3000")
以确保 a) 在应用程序加载并准备好接收请求后 运行s;和 b) 所以它只有 运行 在开发中,而不是在测试或生产中?
系统设置 OS X 10.11.3,Rails 4.2.5,ruby 2.2.1p85,puma 版本 2.15.3
在 run Rails.application
行之后将其放入 config.ru
中即可。到 returns 时,您的应用已准备就绪。要运行它只在development
,勾选Rails.env
.
require ::File.expand_path('../config/environment', __FILE__)
run Rails.application
Launchy.open("http://localhost:3000") if Rails.env.development?
这很简单,但我觉得将它放在您的应用程序中很脏。最好是一个启动服务器的小脚本,稍等片刻,然后启动浏览器。