Qual é o tipo MIME dos arquivos .js?
O tipo MIME (media type) para arquivos JavaScript com a extensão .js é text/javascript. Você também pode encontrar application/javascript. O mesmo tipo é usado para .mjs. A RFC 9239 (2022) tornou text/javascript o tipo oficial, mas application/javascript continua sendo aceito em todos os lugares. Módulos ES carregados com <script type="module"> precisam ser servidos com um tipo MIME de JavaScript, caso contrário o navegador os bloqueia.
Cabeçalho Content-Type
Content-Type: text/javascript; charset=utf-8
Tipos baseados em texto devem incluir um charset para que o navegador interprete os caracteres corretamente.
Configuração do servidor
| Servidor | Configuração |
|---|---|
Nginx (mime.types ou 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') ou res.setHeader('Content-Type', 'text/javascript; charset=utf-8') |
| Amazon S3 | Defina Content-Type: text/javascript no objeto (metadados) ou passe --content-type text/javascript para aws s3 cp |
Os arquivos .js devem ser comprimidos?
Sim. JavaScript é texto, então ativar gzip ou Brotli para text/javascript normalmente reduz o tamanho da transferência em 50–80%. Certifique-se de que a lista de compressão do seu servidor inclui esse tipo. Confira com o teste de compressão de site.
Por que o tipo MIME importa
Os navegadores decidem o que fazer com uma resposta (renderizar, executar, reproduzir ou baixar) com base no cabeçalho Content-Type, e não na extensão do arquivo. Com X-Content-Type-Options: nosniff, um tipo errado faz com que folhas de estilo e scripts sejam bloqueados. Em uploads, nunca confie no tipo enviado pelo cliente; verifique o conteúdo do arquivo (seus magic bytes) no servidor.
Consulta de tipos MIME
Pesquise todas as extensões de arquivo e tipos MIME comuns, com cabeçalhos Content-Type prontos para copiar.
Perguntas frequentes
Qual é o tipo MIME de .js?
text/javascript. Outra alternativa que aparece com frequência: application/javascript.Como defino o Content-Type de .js no Nginx?
text/javascript js; esteja listado no bloco types (geralmente em /etc/nginx/mime.types) e recarregue o Nginx.