
Firefox と Chrome の両方で、サーバーからの JavaScript ファイルが MIME タイプ text/html として提供されていることが示されています。JavaScript ファイルの拡張子は .js です。
まず、mime_module がインストールされ、アクティブになります。
apachectl -M | grep mime
mime_magic_module (shared)
mime_module (shared)
Syntax OK
次に、conf ファイルに次の内容を追加します。
AddType text/css .css
AddType text/javascript .js
これを追加してみました:
<Files "*.js">
ForceType text/javascript
</Files>
Apache を再起動しましたが、Chrome と Firefox では JavaScript ファイルがまだ「text/html」として表示されます。error.log には何も表示されず、access.log には何も有用な情報が返されません。
1.2.3.4 - - [03/Mar/2015:10:42:00 -0500] "GET /some/dir/js/app-min.js HTTP/1.1" 200 14642
以下は .js ファイルの 1 つのヘッダーです (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
このファイルは、html
Firefox インスペクターでタイプとして表示されます。
以下は、私のラップトップの Apache インスタンスによって提供される同じファイルのヘッダーです。
Connection: Keep-Alive
Date: Tue, 03 Mar 2015 15:43:52 GMT
Keep-Alive: timeout=5, max=95
Server: Apache/2.4.7 (Ubuntu)
このファイルは、js
Firefox インスペクタでタイプとして表示されます。Apache (2.4) のローカル インスタンスは で応答しないことに注意してくださいContent-Type
。
メイン サーバーが AddType を無視しているのはなぜですか? これを httpd.conf と ssl.conf の両方に追加しました (ただし、私のサイトでは 443 が強制されます)。Apache を再起動しました (構文エラーはありません)。
答え1
私も同様の問題を抱えていました。あるシステム管理者が conf.modules.d/10-php.conf に次のディレクティブを追加しました。
SetHandler application/x-httpd-php
しかし、これによりすべての拡張機能がそのハンドラーに設定されるため、次のように変更します。
AddHandler php5-script .php
問題は解決しました:)
答え2
問題は解決しました。conf.d/php.conf には次の行が含まれていました:
AddHandler php5-script .php .phtml .html .css .js
AddType text/html .php
最初の行を次のように変更しました
AddHandler php5-script .php .phtml .html
AddType text/html .php
その後、保存して Apache を再起動しました。これで、js および css ファイルが Firefox/Chrome で正しい MIME タイプで表示されるようになりました。
余談ですが、AddType text/javascript .js
下記を追加してみましたAddType text/html .php
が、ファイルは引き続きtext/html
Inspector に と表示されました。正しい MIME タイプを送信するには、AddHandler から .css と .js を削除する必要がありました。