我想将某些文件结尾的 Content-Type HTTP 标头更改为,这样application/javascript
我就不会在浏览器中收到错误或警告。我得到了.mjs
和.js.php.
文件。后者是输出 JavaScript 代码的 PHP 脚本。.htaccess
例如,我想使用文件来更改内容类型而不是 PHP 代码。
我的.htaccess
文件如下所示:
AddType application/javascript .mjs
AddType application/javascript .js.php
它适用于.mjs
但不适合.js.php
文件。我仍然得到
Content-Type: text/html; charset=UTF-8
如何修复?
更新:
我将文件重命名file.js.php
为file.mjs.php
并删除了AddType
的处理程序.js.php
(如建议的那样)。因此只剩.mjs
下 处理程序。但我仍然text/html
得到Content-Type
。
答案1
答案就在帖子里 Apache 配置子文件类型的选项:
这不是你应该做的事情。原因如下:根据mod_mime 文档,apache 将文件名中以点开头的所有部分视为扩展名。在您提供的示例中,如果您有一个文件,例如,,
default.dyn.html
它将被视为.dyn
和同时处理为一个.html
文件。如果无法同时处理,apache 将从右到左处理扩展名。因此,您不能定义包含点的“扩展名”。你应该做的是,仅为扩展定义“服务器解析”处理程序
.dyn
。这样,如果你有一个.dyn.html
文件,它将被注册到服务器解析的处理程序并到 text/html模仿类型。由于它们可以很好地共存,该文件将被解析,并将作为 html 页面提供。