Rails 4.2以降: Rails+Unicorn で、publicディレクトリの中身が404になる場合の解決策
状況
- public 以下すべてが 404 状態で、cssもjavascriptもfaviconも無効の場合。
- public 以下に直接ファイルを置いても、ブラウザからアクセスできない場合。
設定変更
Railsの設定ファイルを変更する。(Rails 4.2.3)
config/environments/production.rb
- config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
+ config.serve_static_files = true
(もともとの設定では、環境変数によって動作が変わるようになっている)
その後、unicorn を再起動しよう。
Rails4.1 以前では設定値が違うようだ。(Rails 4.1.0)
config/environments/production.rb
- config.serve_static_assets = false
+ config.serve_static_assets = true
次の記事を参考にした。
Rails(Apache+Unicorn)で、public以下のディレクトリの中身が404になる場合の解決策
unicorn の設定を変えずに、ウェブサーバーに任せることも出来る。
nginx の場合はこんな感じで location ~ ^/assets/
を書く。
/etc/nginx/conf.d/example.conf
server {
listen 80;
server_name xxx.xxx.xxx.xxx;
server_name example.com;
root /path/to/public;
location ~ ^/assets/ {
root /path/to/public;
}
}
Author And Source
この問題について(Rails 4.2以降: Rails+Unicorn で、publicディレクトリの中身が404になる場合の解決策), 我々は、より多くの情報をここで見つけました https://qiita.com/Yinaura/items/d7dc3daefb5825aba474著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .