Sowohl Firefox als auch Chrome zeigen an, dass JavaScript-Dateien von meinem Server als MIME-Typ text/html bereitgestellt werden. Die JavaScript-Dateien haben die Erweiterung .js.
Zuerst wird mime_module installiert und aktiviert:
apachectl -M | grep mime
mime_magic_module (shared)
mime_module (shared)
Syntax OK
Zweitens habe ich Folgendes in meiner Konfigurationsdatei:
AddType text/css .css
AddType text/javascript .js
Ich habe versucht, Folgendes hinzuzufügen:
<Files "*.js">
ForceType text/javascript
</Files>
und Apache neu gestartet, aber die JavaScript-Dateien werden in Chrome und Firefox immer noch als „text/html“ angezeigt. In error.log wird nichts angezeigt und access.log gibt nichts Nützliches zurück:
1.2.3.4 - - [03/Mar/2015:10:42:00 -0500] "GET /some/dir/js/app-min.js HTTP/1.1" 200 14642
Hier sind die Header einer der .js-Dateien (wie in Firefox angezeigt)
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
Diese Datei wird als Typ html
im Firefox-Inspektor angezeigt.
Hier ist der Header derselben Datei, die von der Apache-Instanz meines Laptops bereitgestellt wird:
Connection: Keep-Alive
Date: Tue, 03 Mar 2015 15:43:52 GMT
Keep-Alive: timeout=5, max=95
Server: Apache/2.4.7 (Ubuntu)
Diese Datei wird js
im Firefox-Inspektor als Typ angezeigt. Beachten Sie, dass die lokale Instanz von Apache (2.4) nicht mit antwortet Content-Type
.
Warum ignoriert der Hauptserver AddType? Ich habe dies sowohl zu httpd.conf als auch zu ssl.conf hinzugefügt (obwohl meine Site 443 erzwingt). Ich habe Apache neu gestartet (keine Syntaxfehler).
Antwort1
Ich hatte ein ähnliches Problem, ein Systemadministrator fügte die folgende Anweisung zu conf.modules.d/10-php.conf hinzu:
SetHandler application/x-httpd-php
Dadurch werden jedoch alle Erweiterungen für diesen Handler festgelegt, daher ändere ich es für:
AddHandler php5-script .php
Problem gelöst :)
Antwort2
Problem gelöst. conf.d/php.conf enthielt diese Zeilen:
AddHandler php5-script .php .phtml .html .css .js
AddType text/html .php
Ich habe die erste Zeile geändert in
AddHandler php5-script .php .phtml .html
AddType text/html .php
Anschließend gespeichert und Apache neu gestartet. Die JS- und CSS-Dateien erscheinen nun mit dem richtigen MIME-Typ in Firefox/Chrome.
Nebenbei bemerkt habe ich versucht, AddType text/javascript .js
direkt darunter etwas hinzuzufügen AddType text/html .php
, aber die Dateien wurden immer noch wie text/html
im Inspector angezeigt. Ich musste .css und .js aus AddHandler entfernen, damit der richtige MIME-Typ gesendet werden konnte.