Mime 類型接收為“text/html”,伺服器配置為發送為“text/javascript”

Mime 類型接收為“text/html”,伺服器配置為發送為“text/javascript”

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,但 javascript 檔案在 Chrome 和 Firefox 中仍然顯示為「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 檔案的標頭(如 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

我遇到了一個類似的問題,一些系統管理員添加了下一個指令 con 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在檢查器中。我必須從 AddHandler 中刪除 .css 和 .js 才能發送正確的 mime 類型。

相關內容