Я запускаю приложение Rails 5 на AWS и настроил nginx следующим файлом nginx.conf
.
Проблема в том, что мой файл application.css обслуживается с неверным типом MIME nginx. Может кто-нибудь указать, что пошло не так, пожалуйста?
/etc/nginx/nginx.conf
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
upstream puma {
server unix:/home/deployer/website/shared/tmp/sockets/puma.sock;
}
server {
listen 80 default_server deferred;
# server_name example.com;
root /home/deployer/website/current/public;
access_log /home/deployer/website/current/log/nginx.access.log;
error_log /home/deployer/website/current/log/nginx.error.log info;
location ~* ^/assets/ {
gzip_types text/plain application/x-javascript application/javascript text/css application/xml application/json;
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @puma;
location @puma {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://puma;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 10M;
keepalive_timeout 10;
}
}
Обновление: хотя я не смог заставить Nginx возвращать CSS с правильным типом mime, я обошел проблему с некоторым клиентским Javascript (исправление получено из блога для другой проблемы). Вот код, который я вставил в мой application.js
.
/* Fix for font awesome icons disappearing on reload*/
document.addEventListener("turbolinks:before-render", function(event) {
FontAwesome.dom.i2svg({
node: event.data.newBody
});
});