在Django开发服务器中是否有设置MIME类型的方法?具体而言,我想从Chrome开发工具警告中删除此消息。
Resource interpreted as Image but transferred with MIME type image/x-png
在Django开发服务器中是否有设置MIME类型的方法?具体而言,我想从Chrome开发工具警告中删除此消息。
Resource interpreted as Image but transferred with MIME type image/x-png
if DEBUG:
import mimetypes
mimetypes.add_type("image/png", ".png", True)
到settings.py文件中
Django开发服务器使用 mimetypes
模块来猜测任何给定文件的适当MIME类型,而在内部,该模块根据您的操作系统使用不同的配置。
特别是在Windows上,它从注册表中的 HKEY_CLASSES_ROOT
加载内容类型(例如对于 .js 文件的键 HKEY_CLASSES_ROOT\.js\Content Type
),似乎这个配置经常以意想不到的方式进行设置(例如通过文本编辑器打开javascript文件)- 它甚至不是Python或Django特有的问题,因为 Go也使用注册表并受到相同影响。
修改受影响文件扩展名的注册表键应该可以解决此问题,而不需要进行任何Django设置更改(但这是一个系统范围的配置更改,可能不是理想的方法):
Windows Registry Editor Version 5.00
; Fixing the question's issue with PNG
[HKEY_CLASSES_ROOT\.png]
"Content Type"="image/png"
; Fixing a common problem with Javascript files
[HKEY_CLASSES_ROOT\.js]
"Content Type"="text/javascript"
mimetypes.knownfiles
是一个包含MIME类型映射的路径列表,可以根据需要进行编辑。2020年解答:
如果您希望任何MIME内容类型能够被浏览器自动检测,则这是解决方案。
在多次痛苦的失败静态尝试之后,这是动态解决方案。
def fetch(request):
import mimetypes
clientRequestUrl=os.getcwd()+'/servlet'+request.path
try: return HttpResponse(fread(clientRequestUrl), content_type=mimetypes.guess_type(request.path)[0])
except Exception as e: return HttpResponse(str(e)+'===> Error Thrown <br>')