mime_content_type仅针对CSS和JS文件返回文本/纯文本

Rap*_*ira 1 php apache mime

我遇到了PHP的mime_content_type这个怪异的问题,除了CSS和JavaScript文件外,它都能正常工作(CSS的默认mime设置为text / html),但CSS和JavaScript文件除外。

修改mime.types文件似乎没有什么区别(它在httpd.conf上的路径正确)。

例子

<?php
  echo(mime_content_type('index.html')); // returns text/html
  echo(mime_content_type('default.png')); // returns image/png
  echo(mime_content_type('bootstrap.min.js')); // returns text/plain
  echo(mime_content_type('css/animate.css')); // returns text/plain
  echo(mime_content_type('css/style.css')); // returns text/x-asm
?>
Run Code Online (Sandbox Code Playgroud)

在完全相同的Apache安装上提供的完全相同的文件会在其Content-Type标头上正确标记,这几乎就像PHP在使用其mime检测机制一样。

我使用Wamp 3.0.6 64-bit和内置PHP 7.0.10Windows 10 64-bit build 15063.483 mod_mime and mode_mime_magic 被启用。

Cap*_*ule 7

PHP文档对此非常明确:

返回文件的MIME内容类型,该内容由使用magic.mime文件中的信息确定。

PHP和Apache不使用相同的mime数据库。Apache使用,mime.types但PHP使用magic.mime(我想不起来它/etc/在Unix系统上的位置)

不确定如何在Windows上进行编辑,但是以下是Linux的一些技巧:如何创建自定义的魔术文件数据库