Назад | Перейти на главную страницу

Nginx дает неправильный тип mime CSS, когда путь содержит тире

Мы перенесли наши веб-серверы на Nginx в основном из соображений производительности, гибкости и простоты настройки (в этом отношении большое удовлетворение!).

Однако только один сайт показал странное поведение: он загружается в свой <head> CSS

<link type="text/css" rel="stylesheet" href="/css/appli-test-local/appli.css">

и Firefox отказывается загружать файл CSS, жалуясь, что тип mime не css

The stylesheet http://client...com/css/appli-test-local/appli.css was not loaded because its MIME type, "text/html", is not "text/css".

при удалении тире - работает

<link type="text/css" rel="stylesheet" href="/css/applitestlocal/appli.css">


Конфигурация Nginx

Что касается конфигурации Nginx, то она проверялась несколько раз по многочисленным примерам в сети. mime.types файл содержит

text/html                             html htm shtml;
text/css                              css;

и nginx.conf для основной части

http {
  include    /etc/nginx/mime.types;
  include    /etc/nginx/fastcgi.conf;

  default_type application/octet-stream;

Вероятно, это ошибка в Nginx, у которой проблемы с тире? Nginx - хорошо написанное программное обеспечение, я был бы удивлен, но это могло быть так. Я упускаю что-то очевидное?

Проблема возникает только в Firefox, потому что FF заботится о типах mime (что хорошо!).

В то время я скомпилировал последнюю версию nginx, и проблема все еще существовала. Похоже, это ошибка nginx в разборе пути / регулярного выражения, которая плохо обрабатывает тире.

Нет подходящего ответа, поэтому я приму этот.

Если вы установили Nginx через репозиторий дистрибутива по умолчанию, то, скорее всего, вы используете очень устаревшую версию Nginx, которая вполне может содержать такую ​​ошибку.

Для тестирования вы должны попробовать найти обновленное репо или скомпилировать последнюю версию из исходников. Если это не помогает, вставьте ОС сервера и весь файл конфигурации.