/var/log/messages

debugging with sixth sense

Assets:precompile でオチる件

ええと

$ bundle exec rake assets:precompile RAILS_ENV=production

で以下のメセジが出力されて異常終了。

Less::Error: 'twitter/bootstrap/bootstrap.less' wasn't found

どうしたものか。

とりあえず以下を試してみましたが駄目。

  • app/assets/stylesheets/application.css に require bootstrap_and_overrides なナニを追加
  • config/application.rb に config.assets.initialize_on_precompile = false を追加

あるいは

  • app/assets/stylesheets/application.css および app/assets/javascripts/application.js に require bootstrap を追加
  • config/application.rb に config.assets.paths << “#{Rails}/vender/assets/fonts” を追加

でも駄目。

動いた

ざっくりで言うと

  • twitter-bootstrap-rails な Gem を有効にした
  • rails g bootstrap:install した
  • rails g bootstrap:layout application fluid した

で動いた。なんとなく CSS が当たってるぽいけど駄目、って状態からちゃんと動いてる状態になりました。詳細というか diff から読める情報を以下に列挙しときます。

  • anjlab-bootstrap-rails を使おうとしてたけど止めた
  • twitter-bootstrap-rails を使っています
  • bootstrap-sass は 3.1.1
  • assets/javascripts/application.js で require twitter/bootstrap してます
  • assets/stylesheets/application.css で require bootstrap してます
  • rails g bootstrap:{install, layout} でいくつかのファイルが上書きされてます
  • config/application.rb に config.assets.paths << “#{Rails}/vendor/assets/fonts” を追加
  • config/application.rb に config.assets.precompile += %w( .png .jpg .jpeg .gif) を追加
  • config/environments/production.rb に config.serve_static_assets = true 追加
  • 同じファイルに config.assets.precompile += %w( .woff .eot .svg .ttf) 追加

何がアタリなのかは検証してません。

そして

これで一段落? って思ったら不備がいくつかあって

  • devise が送付する confirmation な URL が駄目
  • config/route.rb に root な path が無い
  • login/logout なリンクが出てない
  • confirmation なメイルの送付元アドレスがデフォ

あたりを何とかして関係方面に連絡を入れたいのですが、その前に commit を作って remote に push して開発端末で挙動の確認がしたいです。

Comments