如何在Pyramid Web框架中设置响应特定文件类型的内容类型标头

时间:2012-10-04 08:13:48

标签: python pyramid

我正在使用金字塔网页框架来构建网站。我一直在chrome控制台中收到此警告:

  

资源解释为字体但使用MIME类型application / octet-stream传输:“http:static / images / fonts / font.woff”。

如何摆脱此警告消息?

我已使用add_static_view

配置了要提供的静态文件

我可以想办法通过为响应添加订阅者函数来检查路径是否以.woff结尾并将响应头设置为application/x-font-woff。但它看起来不像一个干净的解决方案。有没有办法告诉金字塔通过某种设置来做到这一点。

2 个答案:

答案 0 :(得分:6)

Pyramid使用标准mimetypes module根据扩展名猜测mimetype。它叫:

mimetypes.guess_type(path, strict=False)

该模块在Windows注册表中查找是否在该平台上,以及mimetype列表的以下位置:

knownfiles = [
    "/etc/mime.types",
    "/etc/httpd/mime.types",                    # Mac OS X
    "/etc/httpd/conf/mime.types",               # Apache
    "/etc/apache/mime.types",                   # Apache 1
    "/etc/apache2/mime.types",                  # Apache 2
    "/usr/local/etc/httpd/conf/mime.types",
    "/usr/local/lib/netscape/mime.types",
    "/usr/local/etc/httpd/conf/mime.types",     # Apache 1.2
    "/usr/local/etc/mime.types",                # Apache 1.3
    ]

您可以扩展其中一个文件,也可以创建自己的文件,并使用.init()函数将其添加到模块中。

文件格式很简单,只列出mimetype,然后列出一些空格,然后是以空格分隔的扩展名列表:

application/x-font-woff     woff

答案 1 :(得分:1)

只需将以下代码添加到Pyramid Web应用程序初始化的位置即可。

import mimetypes mimetypes.add_type('application/x-font-woff', '.woff')

例如,我已将其添加到我的webapp.py文件中,该文件在服务器第一次被请求命中时被调用。