LoginSignup
6
7

More than 5 years have passed since last update.

【Rails】guard-livereloadでエラー

Last updated at Posted at 2014-02-21

KobitoをブログのエディタにするにあたってQiitaに投稿を始めてみます。不足あればコメントください。

デザインの微調整やらをテストと併せてやっていこうとした矢先。livereloadが機能しない。

Could not connect to LiveReload server. Please make sure that LiveReload 2.3 (or later) or another compatible server is running.

このようなトラブルはGemfileのバージョンを全く固定していないので、仕方がないのですが(Livereloadなしではデザイン微調整なんてやってられません。

GuardfileなどはREADMEの通りにやっているし、何せ前回まで動いてた時と特に何も変えていない。したとすればbundle update。

結論

guard-livereloadのバージョンを1.4.0から2.1.1に指定してあげると解消しました。

環境

  • OSX Marvericks
  • Ruby 2.1.0
  • Rails 4.0.3
  • Guard 2.4.0
  • Chrome Extentionで利用

どのようにして原因に辿り着いたか

今回の現象はguardコマンドは問題なく動いているように見えることが厄介でした。

13:50:23 - INFO - Guard is using Growl to send notifications.
13:50:23 - INFO - Guard is using TerminalTitle to send notifications.
13:50:23 - INFO - LiveReload is waiting for a browser to connect.
13:50:23 - INFO - Guard::RSpec is running
13:50:23 - INFO - Guard is now watching at '/private/var/www/html/app'

そこで、guardのオプションで-dを実行してみたところ。

14:42:47 - INFO - Browser disconnected.
/private/var/www/html/app/vendor/bundle/ruby/2.1.0/gems/guard-livereload-1.3.0/lib/guard/livereload/websocket.rb:13:in `dispatch': undefined method `request_path' for #<HTTP::Parser:0x007fa33aeb4508> (NoMethodError)
    from /private/var/www/html/orda/vendor/bundle/ruby/2.1.0/gems/em-websocket-0.3.8/lib/em-websocket/connection.rb:73:in `receive_data'

エラーっぽいのが出てました。
そこで検索してみると以下のページに辿り着きました。

まさにこれです。そこでGemfileを以下のように修正した。

group :development do
  #gem 'guard'
  gem 'guard-rspec'
  gem 'guard-livereload', '~> 2.1.1', require: false
end

guard-rspecがあればguardは指定しなくてもいいようです。
けれど環境によっては依存性?のエラーが出ると思います。

Bundler could not find compatible versions for gem "http_parser.rb":
  In Gemfile:
    guard-livereload (~> 2.1.1) ruby depends on
      http_parser.rb (~> 0.5.3) ruby

    twitter (>= 0) ruby depends on
      http_parser.rb (0.6.0)

そのような場合、私のようにバージョンを指定していなくて本番運用していなければGemfile.lockを一度削除すれば解決します。

以上です。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7