0

Rails 3.1.1 から 3.2.8 にアップグレードしたときに、スタイルシートや画像のルーティング エラーが表示されるのは本当にイライラします。「bundle exec rails server」コマンドを試し、ファイルにgemを1つずつ追加しようとしましたが、うまくいきませんでした:(

ActionController::RoutingError (No route matches [GET] "/stylesheets/application.css"):
  actionpack (3.2.8) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (3.2.8) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.8) lib/rails/rack/logger.rb:26:in `call_app'
  railties (3.2.8) lib/rails/rack/logger.rb:16:in `call'
  actionpack (3.2.8) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.1) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.8) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.1) lib/rack/lock.rb:15:in `call'
  actionpack (3.2.8) lib/action_dispatch/middleware/static.rb:62:in `call'
  railties (3.2.8) lib/rails/engine.rb:479:in `call'
  railties (3.2.8) lib/rails/application.rb:223:in `call'
  rack (1.4.1) lib/rack/content_length.rb:14:in `call'
  railties (3.2.8) lib/rails/rack/log_tailer.rb:17:in `call'
  rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service'
4

1 に答える 1

1

レールでアセットにリンクするときは、常に、、、またはこれらを順番に呼び出すヘルパー関数のいずれか ( 、asset_path、)を使用します。asset_urlimage_pathimage_urljavascript_include_tagstylesheet_link_tag

あなたの場合、/stylesheets/application.cssアプリケーションのレイアウトにハードコーディングしたようです。そのコードを次のような単純な変更

<%= stylesheet_link_tag :application %>

/assets/application.cssまた、開発用と/assets/application-<sha1 hash>.css本番用 (アセットがコンパイルされるとき)を正しく指す必要があります。

また、アセットをローカルでコンパイルしている場合 (これに何かpublic/assetsがある場合。rm -rf public/assetsローカルで開発している場合は必要になる場合があります)、次の行が に必要ですconfig/application.rb

config.serve_static_assets = true
于 2012-08-13T06:55:44.527 に答える