Ресурс интерпретируется как таблица стилей, но передается с текстом MIME типа text / plain, Rails 5 - PullRequest
0 голосов
/ 05 января 2019

Я запускаю приложение 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
      });
    });
...