¿Cuál es el tipo MIME de los archivos .js?
El tipo MIME (tipo de medio) de los archivos JavaScript con la extensión .js es text/javascript. También puedes encontrar application/javascript. El mismo tipo se usa para .mjs. La RFC 9239 (2022) convirtió text/javascript en el tipo oficial; application/javascript sigue siendo aceptado en todas partes. Los módulos ES cargados con <script type="module"> deben servirse con un tipo MIME de JavaScript, o el navegador los bloqueará.
Cabecera Content-Type
Content-Type: text/javascript; charset=utf-8
Los tipos basados en texto deben incluir un charset para que el navegador decodifique correctamente los caracteres.
Configuración del servidor
| Servidor | Configuración |
|---|---|
Nginx (mime.types o types {}) | text/javascript js; |
Apache (.htaccess) | AddType text/javascript .js |
IIS (web.config) | <mimeMap fileExtension=".js" mimeType="text/javascript" /> |
| Node.js / Express | res.type('js') 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 |
¿Conviene comprimir los archivos .js?
Sí. JavaScript es texto, así que activar gzip o Brotli para text/javascript suele reducir el tamaño de transferencia entre un 50 y un 80 %. Asegúrate de que la lista de compresión de tu servidor incluya este tipo; compruébalo con el test de compresión web.
Por qué importa el tipo MIME
Los navegadores deciden qué hacer con una respuesta (mostrarla, ejecutarla, reproducirla o descargarla) 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 te fíes del tipo que envía el cliente; comprueba el contenido del archivo (sus bytes mágicos) 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 .js?
text/javascript. Otras alternativas que también se ven en la práctica: application/javascript.¿Cómo configuro el Content-Type de .js en Nginx?
text/javascript js; aparezca en el bloque types (normalmente en /etc/nginx/mime.types) y recarga Nginx.