MIME-тип .mjs: text/javascript

Файлы с расширением .mjs (модуль JavaScript) используют MIME-тип text/javascript.

Обновлено

text/javascript
MIME-тип для .mjs
Веб
Категория
Да
Сжимать через gzip/Brotli

Какой MIME-тип у файлов .mjs?

MIME-тип (медиатип) для файлов модуля JavaScript с расширением .mjs — text/javascript. Также может встречаться application/javascript. Тот же тип используется для .js. Расширение .mjs обозначает ES-модули в Node.js. Некоторые старые серверы его не знают и отдают application/octet-stream, который браузеры отвергают для скриптов-модулей — укажите тип явно.

Заголовок Content-Type

Content-Type: text/javascript; charset=utf-8

Текстовые типы должны включать charset, чтобы браузер корректно декодировал символы.

Настройка сервера

СерверКонфигурация
Nginx (mime.types или types {})text/javascript mjs;
Apache (.htaccess)AddType text/javascript .mjs
IIS (web.config)<mimeMap fileExtension=".mjs" mimeType="text/javascript" />
Node.js / Expressres.type('mjs') или res.setHeader('Content-Type', 'text/javascript; charset=utf-8')
Amazon S3Установите Content-Type: text/javascript для объекта (метаданные) или передайте --content-type text/javascript в aws s3 cp

Нужно ли сжимать файлы .mjs?

Да. Модуль JavaScript — это текст, поэтому включение gzip или Brotli для text/javascript обычно сокращает объём передачи на 50–80 %. Убедитесь, что в списке сжатия вашего сервера есть этот тип — проверить можно с помощью теста сжатия сайта.

Почему важен MIME-тип

Браузеры решают, что делать с ответом — отобразить, выполнить, воспроизвести или скачать — по заголовку Content-Type, а не по расширению файла. При X-Content-Type-Options: nosniff неправильный тип приводит к полной блокировке стилей и скриптов. Для загрузок никогда не доверяйте типу, присланному клиентом; проверяйте содержимое файла (его магические байты) на сервере.

Часто задаваемые вопросы

Какой MIME-тип у .mjs?
text/javascript. Встречаются и другие варианты: application/javascript.
Как задать Content-Type для .mjs в Nginx?
Убедитесь, что text/javascript mjs; указан в блоке types (обычно в /etc/nginx/mime.types), и перезагрузите Nginx.
Нужно ли сжимать файлы .mjs через gzip?
Да — этот формат хорошо сжимается, поэтому добавьте тип в конфигурацию gzip/Brotli.