簡體   English   中英

使 Python http.server 對 webp 圖像使用正確的內容類型 header

[英]Make Python http.server use correct content-type header for webp images

嘗試運行一個非常簡單的本地 python 網絡服務器來提供一個目錄,其中包含一些不同格式的圖像,如 png、jpg 和 webp。

python3 -m http.server -d /path/webdir 8090

不幸的是,webp 圖像使用錯誤的 header: Content-type: application/octet-stream而不是Content-type: image/webp

我怎樣才能解決這個問題? (仍然使用 oneliner 來啟動 python 網絡服務器)

是的,我知道php做得很好:

 php -t /path/webdir -S  localhost:8090

基於源代碼,它使用模塊mimetypes來猜測類型

import mimetypes  

print( mimetypes.guess_type('name.webp') )

結果

(None, None)

該模塊使用系統中的一些文件來猜測類型

print( mimetypes.knownfiles )

Linux Mint 20 的結果(基於 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'
]

如果我在這些文件之一中添加行 - 即。 /etc/mime.types

image/webp                  webp

然后mimetypes.guess_type('name.webp')給了我

('image/webp', None)

我認為它應該解決您的服務器的問題。


編輯:

我在 /etc/mime.types 中添加行之前和之后測試python3 -m http.server /etc/mime.types解決了我的 Linux 的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM