接收的 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

其次,我的配置文件中有这个:

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)

该文件在 Firefox 检查器中显示为类型js。请注意,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 文件现在以正确的 mime 类型显示在 Firefox/Chrome 中。

顺便说一句,我尝试AddType text/javascript .js在下面添加AddType text/html .php,但文件仍然显示text/html在 Inspector 中。我必须从 AddHandler 中删除 .css 和 .js 才能发送正确的 mime 类型。

相关内容