有没有办法在您运行rails server
时自动启动浏览器并将其指向config/initializers/launchy.rb
?
其次确保这只发生在开发中?
我原本以为Launchy会做到这一点,但我正努力想要把它放在哪里。
我已尝试添加初始化资源require 'launchy'
Launchy.open("http://localhost:3000")
http://localhost:3000
这会触发浏览器打开,创建一个新选项卡并按预期访问Launch.open
,但它会在服务器/应用程序完成启动之前运行,并且我得到 无法连接到服务器 在浏览器中出错。
如果我在浏览器中重新加载我的应用程序工作正常,那么我确信它不是我的应用程序的问题,而是launchy.rb
调用的时间。
我尝试将z_launchy.rb
重命名为config/puma.rb
,因此根据docs最后加载,但问题仍然存在。在应用程序准备好之前启动启动。
我还尝试将代码添加到config/enviroments/developoment.rb
(我使用puma作为我的服务器),Launchy.open
但始终存在同样的问题。 Launchy.open("http://localhost:3000")
命令很快就会被调用。
我应该在哪里调用slideshow
以确保a)它在应用程序加载并准备接收请求后运行;和b)所以它只在开发中运行,而不是在测试或生产中运行?
系统设置OS X 10.11.3,Rails 4.2.5,ruby 2.2.1p85,puma版本2.15.3
答案 0 :(得分:4)
在config.ru
行之后,将其放入run Rails.application
会有效。到返回时,您的应用程序已准备就绪。要仅在development
中运行,请检查Rails.env
。
require ::File.expand_path('../config/environment', __FILE__)
run Rails.application
Launchy.open("http://localhost:3000") if Rails.env.development?
这很容易,但让我坐在你的应用程序中感觉很脏。更好的是一个小脚本,启动你的服务器,等待片刻,然后启动浏览器。