2011-01-18 13 views
0

既存のレールアプリケーションのローカルインスタンスを取得しようとしています。これはRails 2.2.3上に構築されています。パブリックディレクトリへのパスを設定する必要があるようなエラーが表示され続けます。Rails 2.2.3アプリケーションでパスをpublicに設定する方法

ActionController :: RoutingError({/ method =>:get}での "/favicon.ico"の一致するルートはありません): ... "スクリプト/サーバー"を実行してページをリクエストすると、

ActionController :: RoutingError(Noルート一致 "/stylesheets/cache/xxx.css" と{:この方法は、=>:取得}):

ActionController :: RoutingError(Noルート一致「/ JavaScriptの/キャッシュ/xxx.js "と{:method =>:get}):

パブリックにパスを設定するにはどうすればよいですか?これは "RAILS_ROOT"を設定することと関係がありますか? config/environments/{development,test,production}.rbで、serve_static_assetsがtrueに設定されていることを

おかげ

+0

RAILS_ROOT/publicにこれらのファイルやディレクトリがありますか?上に基づいて、資産のキャッシュ実装があるようですが、何を使用していますか?サーバーがパブリックディレクトリ内のファイルを見つけることができず、したがって要求がルーティングに渡されるため、RoutingErrorが発生しています。 –

+0

はい、それらはすべてRAILS_ROOT/publicにあります。 RAILS_ROOTが何であるかわからないかのようです。 – RepDetec

+0

コンソールを開いてRAILS_ROOTを評価すると正しいです。 – RepDetec

答えて

2

チェック。それ以外の場合、Railsはアセットを/publicに配信しません。

プロダクションでは、Apacheなど、これらのアセットを提供するWebサーバーが必要です。適切なRailsを実行することは、不要なスローダウンです。

+1

あなたはこの問題を修正しますか?を? config.serve_static_assets =真 となった次のエラーをメッセージ: => Rails 2.3.4アプリケーションがhttp://.0.0.0.0:3000から開始 /home/XXX/Applications/XXX/config/environments/development.rb:17:in' load_environment ':未定義メソッド 'serve_static_assets = 'for#(NoMethodError) \tから./script/../config/../vendor/rails/railties/lib/initializer.rb:386:in' load_environment' – RepDetec

+0

Iプロダクションを除くすべての環境でserve_static_assetsがデフォルトでtrueになるはずです。なぜそれを明示的に設定するのか、私には間違いがあります。 – RepDetec

関連する問題