Tipo MIME recebido como "text/html", servidor configurado para enviar como "text/javascript"

Tipo MIME recebido como "text/html", servidor configurado para enviar como "text/javascript"

Tanto o Firefox quanto o Chrome estão mostrando que os arquivos javascript do meu servidor são servidos como texto/html do tipo MIME. Os arquivos javascript possuem extensão .js.

Primeiro, mime_module está instalado e ativo:

apachectl -M | grep mime
 mime_magic_module (shared)
 mime_module (shared)
Syntax OK

Segundo, tenho isso em meu arquivo conf:

AddType text/css .css
AddType text/javascript .js

Eu tentei adicionar isto:

<Files "*.js">
    ForceType text/javascript
</Files>

e reiniciei o apache, mas os arquivos javascript ainda aparecem como "text/html" no Chrome e Firefox. Nada aparece em error.log e access.log não está retornando nada de útil:

1.2.3.4 - - [03/Mar/2015:10:42:00 -0500] "GET /some/dir/js/app-min.js HTTP/1.1" 200 14642

Aqui estão os cabeçalhos de um dos arquivos .js (como visto no Firefox)

Connection: close
Content-Type: text/html; charset=UTF-8
Server: Apache
Strict-Transport-Security: max-age=63072000; includeSubDomains
Transfer-Encoding: chunked
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Permitted-Cross-Domain-Policies: master-only
X-WebKit-CSP: default-src 'self'
X-XSS-Protection: 1; mode=block

Este arquivo aparece como tipo htmlno inspetor do Firefox.

Aqui está o cabeçalho do mesmo arquivo servido pela instância Apache do meu laptop:

Connection: Keep-Alive
Date: Tue, 03 Mar 2015 15:43:52 GMT
Keep-Alive: timeout=5, max=95
Server: Apache/2.4.7 (Ubuntu)

Este arquivo aparece como tipo jsno inspetor do Firefox. Observe que a instância local do Apache (2.4) não está respondendo com Content-Type.

Por que o servidor principal está desafiando o AddType? Eu adicionei isso ao httpd.conf e ao ssl.conf (embora meu site force 443). Reiniciei o apache (sem erros de sintaxe).

Responder1

Eu tive um pequeno problema, algum administrador de sistema adicionou a próxima diretiva con conf.modules.d/10-php.conf:

SetHandler application/x-httpd-php

Mas isso define todas as extensões para esse manipulador, então eu mudo para:

AddHandler php5-script .php

Problema resolvido :)

Responder2

Problema resolvido. conf.d/php.conf continha estas linhas:

AddHandler php5-script .php .phtml .html .css .js
AddType text/html .php

mudei a primeira linha para

AddHandler php5-script .php .phtml .html
AddType text/html .php

Em seguida, salvei e reiniciei o Apache. Os arquivos js e css agora aparecem com o tipo MIME correto no Firefox/Chrome.

Além disso, tentei adicionar AddType text/javascript .jslogo abaixo AddType text/html .php, mas os arquivos ainda apareciam como text/htmlno Inspector. Tive que remover .css e .js do AddHandler para que o tipo MIME correto fosse enviado.

informação relacionada