我遇到了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
已启用。
答案 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