У меня есть приложение Rails 5.Я использую гем Carrierwave, чтобы разрешить загрузку изображений на public/system/...
.
При рассмотрении производственного приложения на предмет настроек производительности я понял, что неправильно настроил nginx и что он обслуживает только статические файлы из /assets
вместо/assets
и /system
.
Что у меня есть:
location ~ ^/assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
Что я (как мне кажется) должно иметь:
location ~ ^/(assets|system)/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
Однако config.public_file_server.enabled = false
установлено в production.rb
.
Так что теперь я в замешательстве - как Rails обслуживает эти изображения?Я предполагаю, что у меня (грубо) неполное понимание того, как конвейер активов на самом деле работает?
Обновление: конфигурация nginx
upstream puma {
server unix:///home/deploy/apps/myapp/shared/sockets/mydomain.sock;
}
server {
listen 80 default;
server_name mydomain.com;
root /home/deploy/apps/myapp/current/public;
access_log /home/deploy/apps/myapp/shared/log/nginx.access.log;
error_log /home/deploy/apps/myapp/shared/log/nginx.error.log info;
location ~ ^/(assets|system)/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
location ~ ^/(robots.txt|sitemap.xml.gz)/ {
root /home/deploy/apps/myapp/current/public;
}
try_files $uri/index.html $uri @puma;
location @puma {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://puma;
}
location /cable {
proxy_pass http://puma;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
error_page 500 502 503 504 /500.html;
client_max_body_size 50M;
keepalive_timeout 10;
listen 443 ssl; # managed by Certbot
# ssl certificate info...
}