Неправильный MIME-тип для CSS и JS файлов

Я новичок в Apache. Я почти не знаю apache. Я использую Apache 2.2.11.
У меня есть один файл CSS и несколько файлов.js, которые я загружаю в удаленное хранилище со страницей PHP (PHP - 5.2.8). Когда я использую функцию mime_content_type получить MIME-файл css.css, я получаю text/plain, Та же проблема с файлами.js. Есть несколько файлов изображений, для которых возвращаемые mime-типы верны с той же функцией.

Я проверил, что сервер имеет text/css css определено в файле mime.types. Неправильный тип пантомимы создает для меня проблему, и я провел много времени безуспешно.

Любая помощь?

2 ответа

Решение

Во-первых, обратите внимание, что PHP mime_content_type применение к файлам по их содержимому - это другая история, чем MIME-тип, предоставляемый Apache клиентам по их расширению. Затем, mime_content_type кажется устаревшим в пользу fileinfo. Но очень важно то, что содержимое файла CSS не обязательно определяется как CSS (а не просто текст ascii). Это отличается от HTML, который может быть распознан по отличительным первым символам содержимого (например, "<HTML") и поэтому признаются как text/html, Таким образом, не существует достаточно простого способа узнать по содержимому, что файл на самом деле является CSS, а не просто текстом ASCII. Я предлагаю вам положиться на расширение файла, чтобы переопределить текст / простые результаты.

Из документации PHP для функции mime_content_type:

строка mime_content_type (строка $filename)

Возвращает тип содержимого MIME для файла, определенный с использованием информации из файла magic.mime.

Другие вопросы по тегам