環境:heroku
レール:4
ルビー:2
Herokuにアプリをデプロイしましたが、パブリックフォルダー内の何にもアクセスできないように見えました(静的ファイルが表示されなかったため、ルーターが起動し、ルートの一致がないというメッセージが表示されました)。
これを回避するために、
# Rails 4 only flag
config.serve_static_assets = true
私たちのproduction.rbファイルで。これは本当にこれを処理する最良の方法ですか?それとも、アプリをherokuで適切にホストするためのいくつかの設定に失敗しましたか?
これはRails 4.2で非推奨になり、Rails 5.0で削除される予定のエイリアスになりました。
config.serve_static_assets = true
次のように変更する必要があります。
config.serve_static_files = true
以前のRailsバージョンでは、Herokuは静的アセットの提供を有効にするプラグインを注入したため、この問題は存在しませんでした。このプラグインシステムはRails 4 、彼らは今同じことをするgemを作成しました。あなたはGemfileでそれを有効にします:
gem 'Rails_12factor', group: :production
もちろん、アセットにCDNを使用することもできますが、必須ではありません。
Dean Winchesterが述べたように、静的アセットにはCDNを使用することをお勧めします。実際、Herokuのみを使用する場合、Heroku Cedarアーキテクチャされないがそれを行うため、Railsアプリケーションは静的アセットを提供する必要があります。
設定config.serve_static_assets = true
は、CDNを構成せずにHerokuのみを使用する場合の方法です。
Railsガイドが間違っています。お試しください...
config.assets.serve_static_files = true