Как автоматически запустить браузер при запуске сервера rails?
Есть ли способ автоматического запуска браузера и указания его на http://localhost:3000
когда ты бежишь rails server
?
А во-вторых, обеспечение того, чтобы это происходило только в процессе разработки?
Я бы подумал, что Launchy справился бы с задачей, но я изо всех сил пытаюсь понять, где ее поставить.
Я попытался добавить инициализатор config/initializers/launchy.rb
require 'launchy'
Launchy.open("http://localhost:3000")
И это вызывает браузер, чтобы открыть, создать новую вкладку и посетить http://localhost:3000
как и ожидалось, однако он запускается до завершения загрузки сервера / приложения, и в браузере появляется сообщение " Не удается подключиться к серверу".
Если я перезагружу браузер, мое приложение будет работать нормально, поэтому я уверен, что это не проблема с моим приложением, а скорее время Launch.open
вызов.
Я пытался переименовать launchy.rb
в z_launchy.rb
так что он загружается последним в соответствии с документами, но все та же проблема. Launchy срабатывает до того, как приложение будет готово к нему.
Я также попытался добавить код config/puma.rb
(Я использую Puma в качестве моего сервера), чтобы config/enviroments/developoment.rb
но всегда одна и та же проблема. Launchy.open
Команда скоро будет вызвана.
Куда мне звонить Launchy.open("http://localhost:3000")
чтобы убедиться, что: а) он запускается после загрузки приложения и готов к приему запросов; и б) То есть он работает только в разработке, а не в тестировании или производстве?
Системная настройка OS X 10.11.3, Rails 4.2.5, ruby 2.2.1p85, версия puma 2.15.3
1 ответ
Положить его в 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?
Это легко, но мне кажется грязным иметь это в своем приложении. Лучше было бы небольшой скрипт, который запускает ваш сервер, ждет, затем запускает браузер.