I'm encountering this weird issue with PHP's mime_content_type, it works fine, except for CSS and JavaScript files, which it returns text/plain for (PHP's default mime is set to do text/html).
Modifying the mime.types file seems to make no difference (its path on httpd.conf is correct).
Examples
<?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
?>
The same exact files served on the same exact Apache installation gets correctly marked on their Content-Type
headers, it's almost as if PHP's using its mime detection mechanism.
I'm using Wamp 3.0.6 64-bit
and the built-in PHP 7.0.10
on Windows 10 64-bit build 15063.483 mod_mime and mode_mime_magic
are enabled.
The PHP doc is pretty explicit about that:
Returns the MIME content type for a file as determined by using information from the magic.mime file.
PHP and Apache don't use the same mime databases. Apache uses mime.types
but PHP uses magic.mime
(can't remember where it's located, /etc/
on a Unix system, I think)
No sure how to edit it on Windows but here are some tips for Linux: How to create a custom magic file database