mime_content_type仅为css和js文件返回text / plain

时间:2017-07-19 00:59:45

标签: php apache mime

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

修改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
?>

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

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

1 个答案:

答案 0 :(得分:5)

PHP文档非常清楚:

  

返回由using确定的文件的MIME内容类型   来自magic.mime文件的信息。

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

不确定如何在Windows上编辑它,但以下是Linux的一些提示:How to create a custom magic file database