###前提・実現したいこと
Rails5 の production 環境にて static ファイルが Not Found になる
【環境】 Rails5 x nginx x unicorn
そもそもソースを右クリックで見ると assets というディレクトリを参照していないようです。
(※ プロジェクト作成後、トップページだけを作成して確認)
<!DOCTYPE html> <html> <head> <title>Myproject</title> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="hogehogehoge" /> <link rel="stylesheet" media="all" href="/stylesheets/application.css" data-turbolinks-track="reload" /> <script src="/javascripts/application.js" data-turbolinks-track="reload"></script> </head> <body> <h1>Top#index</h1> <p>Find me in app/views/top/index.html.erb</p> </body> </html>
###発生している問題・エラーメッセージ
The page you were looking for doesn't exist.
/etc/nginx/nginx.conf
user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.fedora. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf; index index.html index.htm; }
/etc/nginx/conf.d/service.conf
upstream unicorn { server unix:/www/myproject/tmp/unicorn.sock; } server { listen 80 default_server; } server { listen 80; server_name myproject.jp; access_log /var/log/nginx/myproject_access.log; error_log /var/log/nginx/myproject_error.log; root /www/myproject/public; # 一旦コメントアウトしている... #location ~ .*\.(jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO) { # root /www/myproject/public; # break; #} #location ~ ^/assets/(.*) { # alias /www/myproject/public/assets/$1; #} error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } try_files $uri/index.html $uri @unicorn; location @unicorn { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://unicorn; } }
###試したこと
$ RAILS_ENV=production bundle exec rake assets:precompile 実行をし、 /www/myproject/public/assets/ 配下にコンパイル済みのファイルが生成されております。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/03/15 00:56