私は最近3から4.2.7への我々のアプリケーションを更新しましたし、今、私たちは、本番環境での問題を抱えている:Railsの4つのアップグレード生産nginxの問題
- 資産はtext/htmlではなく、彼らのよう提供されていますそれぞれのcss/jsヘッダ。
- (関連する可能性あり)サブディレクトリのプリコンパイルされたアセットが見つかりませんでした。つまり、
/cssfile.css
が正常にロードされたことを意味します。/subdir/cssfile.css
は正しくありません。
アップグレード中にnginx設定ファイルに変更はありませんでした。設定/環境/ production.rbの変化は、以下の通りである:私はことをどこかで読んだので、それは、なぜ起こったか、私はそれを削除して、展開に
+ config.eager_load = true
- config.serve_static_assets = false
+ config.serve_static_files = false
- config.assets.compress = true
+ config.assets.js_compressor = :uglifier
+ config.assets.css_compressor = :sass
をconfig.assets.css_compressor = :sass
は、問題を引き起こし、必ず、プリコンパイル正常に終了しませんRails 4のデフォルトのcss_compressorは:sassです。ここで
は、サイト上で使用さnginxの設定ファイルです:
upstream SITENAME {
server unix:/home/deploy/SITENAME/shared/pids/unicorn.sock;
}
server {
listen 80;
server_name production.SITENAMEart.com;
root /home/deploy/SITENAME/current/public;
access_log /var/log/nginx/SITENAME.access.log main;
client_max_body_size 64M;
location ~ ^/assets/ {
expires max;
add_header Cache-Control public;
add_header ETag "";
break;
}
location ~ ^/(assets)/ {
root /home/deploy/SITENAME/current/public;
gzip_static on;
expires max;
add_header Cache-Control public;
}
location/{
try_files $uri @SITENAME;
}
location @SITENAME {
include proxy.conf;
proxy_pass http://SITENAME;
}
# stats url
location /nginx_stats {
stub_status on;
access_log off;
#allow SOME.IP.ADD.RESS;
#deny all;
}
}
server {
listen 443;
server_name production.SITENAMEart.com;
root /home/deploy/SITENAME/current/public;
access_log /var/log/nginx/SITENAME.access.log main;
ssl on;
ssl_certificate /usr/local/nginx/conf/ssl/wildcard.SITENAMEart.com.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/wildcard.SITENAMEart.com.key.unsecure;
ssl_client_certificate /usr/local/nginx/conf/ssl/geotrust.crt;
location ~ ^/assets/ {
expires max;
add_header Cache-Control public;
add_header ETag "";
break;
}
location/{
try_files $uri @SITENAME;
proxy_set_header X-Forwarded-Proto https;
}
location @SITENAME {
include proxy.conf;
proxy_pass http://SITENAME;
proxy_set_header X-Forwarded-Proto https;
}
# stats url
location /nginx_stats {
stub_status on;
access_log off;
}
}
最も私を驚かせる何のリリースを徹底的に生産に展開する前にステージングでテストし、それがnginxの設定ファイルを持っていたことがある - 何も問題はあり現れません。