¿Cuál es el tipo MIME de los archivos .mjs?
El tipo MIME (tipo de medio) de los archivos de módulo JavaScript con la extensión .mjs es text/javascript. También puede que veas application/javascript. El mismo tipo se usa para .js. La extensión .mjs marca los módulos ES en Node.js. Algunos servidores antiguos no la reconocen y envían application/octet-stream, que los navegadores rechazan en scripts de módulo; añade el tipo explícitamente.
Cabecera Content-Type
Content-Type: text/javascript; charset=utf-8
Los tipos basados en texto deben incluir un charset para que el navegador decodifique los caracteres correctamente.
Configuración del servidor
| Servidor | Configuración |
|---|---|
Nginx (mime.types o types {}) | text/javascript mjs; |
Apache (.htaccess) | AddType text/javascript .mjs |
IIS (web.config) | <mimeMap fileExtension=".mjs" mimeType="text/javascript" /> |
| Node.js / Express | res.type('mjs') o res.setHeader('Content-Type', 'text/javascript; charset=utf-8') |
| Amazon S3 | Establece Content-Type: text/javascript en el objeto (metadatos), o pasa --content-type text/javascript a aws s3 cp |
¿Deben comprimirse los archivos .mjs?
Sí. El módulo JavaScript es texto, así que activar gzip o Brotli para text/javascript normalmente ahorra entre un 50–80 % del tamaño de transferencia. Asegúrate de que la lista de compresión de tu servidor incluya este tipo; compruébalo con el test de compresión de sitios web.
Por qué importa el tipo MIME
Los navegadores deciden qué hacer con una respuesta (renderizar, ejecutar, reproducir o descargar) según la cabecera Content-Type, no según la extensión del archivo. Con X-Content-Type-Options: nosniff, un tipo incorrecto hace que las hojas de estilo y los scripts se bloqueen directamente. En las subidas de archivos, nunca confíes en el tipo que envía el cliente; comprueba el contenido del archivo (sus magic bytes) en el servidor.
Búsqueda de tipos MIME
Busca todas las extensiones de archivo y tipos MIME habituales, con cabeceras Content-Type listas para copiar.
Preguntas frecuentes
¿Cuál es el tipo MIME de .mjs?
text/javascript. Otra alternativa que se ve en la práctica: application/javascript.¿Cómo configuro el Content-Type de .mjs en Nginx?
text/javascript mjs; esté en el bloque types (normalmente en /etc/nginx/mime.types) y recarga Nginx.