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

Типы MIME Apache2 для js и xml

Возникнут ли какие-либо проблемы с функциональностью / обслуживанием на Apache2 при изменении следующих типов MIME по умолчанию ...

.js  : application/x-javascript
.xml : application/xml

К этому...

.js  : text/javascript
.xml : text/xml

Мое тестирование, похоже, показывает, что это сработает, но я не совсем понимаю назначение типов MIME, поскольку они связаны с обслуживанием файлов.

Вам нужно быть осторожным с типами MIME, поскольку они отправляются в браузер, чтобы помочь им понять, каким способом визуализировать определенные файлы.

Изменение этих двух конкретных типов MIME не должно повредить, но я бы очень осторожно относился к этому в целом. Тип MIME отправляется с заголовками для этого конкретного файла, и их изменение может привести к неожиданному поведению некоторых клиентов.

то есть вы не можете точно сказать, что произойдет, изменив типы mime как таковые, поскольку это зависит от клиента. В этом случае вам понадобится кто-то, имеющий опыт работы со всеми различными веб-браузерами, или вам нужно будет проверить это самостоятельно. В общем, это то, чего вам следует остерегаться.

text/xml может быть проблема. Некоторые прокси-серверы для кеширования перезаписывают кодировку символов text/* файлы. В случае файла XML это может привести к тому, что фактическая кодировка символов будет отличаться от кодировки символов, объявленной в самом документе. И кроме того, я думаю text/xml устарела.

http://hsivonen.iki.fi/proroduction-xml/#textxml

Так что всегда используйте application/xml для общих XML-документов и application/*+xml для определенных документов, которые имеют собственные зарегистрированные типы MIME (application/xul+xml для XUL, например).

Единственный правильный тип носителя для javascript - application/javascript (или application/ecmascript, что более строго определено).

http://www.rfc-editor.org/rfc/rfc4329.txt

Тем не менее, многим браузерам все равно, если вы используете javascript как text/plain или даже вообще что-то придумать.