Trying to run a very simple local python webserver to serve a directory with some images in different formats like png, jpg and webp.
python3 -m http.server -d /path/webdir 8090
Unfortunately, webp images are served with the wrong header: Content-type: application/octet-stream instead of Content-type: image/webp
How can I fix this? (still using a oneliner to start the python webserver)
Yes I know php is doing it fine:
php -t /path/webdir -S localhost:8090
Base on source code it uses module mimetypes to guess type
import mimetypes
print( mimetypes.guess_type('name.webp') )
Result
(None, None)
This module uses some files in system to guess type
print( mimetypes.knownfiles )
Result on Linux Mint 20 (based on Ubuntu 20.04)
[
'/etc/mime.types',
'/etc/httpd/mime.types',
'/etc/httpd/conf/mime.types',
'/etc/apache/mime.types',
'/etc/apache2/mime.types',
'/usr/local/etc/httpd/conf/mime.types',
'/usr/local/lib/netscape/mime.types',
'/usr/local/etc/httpd/conf/mime.types',
'/usr/local/etc/mime.types'
]
If I add line in one of these files - ie. /etc/mime.types
image/webp webp
Then mimetypes.guess_type('name.webp') gives me
('image/webp', None)
and I think it should resolve proble with your server.
EDIT:
I tested python3 -m http.server before and after adding line in /etc/mime.types and it resolved problem on my Linux.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With