1

実稼働環境で Rails サーバーを実行していて、アセットをプリコンパイルしましたが、何らかの理由でリクエストが /public ではなく /assets ディレクトリに送信されます。

デフォルトの production.rb ファイルがあります。何が原因でしょうか?

# config/environments/production.rb

config.cache_classes = true
config.consider_all_requests_local       = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
config.force_ssl = true
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
4

2 に答える 2

1

以下を変更することもできます。

config.serve_static_assets = true

アセットは、Apache や Nginx を使用しなくても /public/assets から提供されます。

開発の場合は、/public/assets ディレクトリを削除するだけで、自動的にコンパイルされ、/assets から提供されます。

于 2012-10-10T05:01:04.573 に答える
1

リクエストは に送信され、Rails アプリの前にある Web サーバーによってディレクトリ/assetsから提供されます。public

内部にconfig.serve_static_assets設定されているため、Rails はこれらのアセットを提供しようとさえしません。falseconfig/environments/production.rb

Rails の前にPassengerを実行する Apache または Nginx サーバーを配置して、Apache または Nginx がアセットとプロキシ リクエストをアプリケーションに提供できるようにすることをお勧めします。

于 2012-10-10T04:20:01.797 に答える