4

我正在使用金字塔网络框架来建立一个网站。我在 chrome 控制台中不断收到此警告:

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

如何摆脱此警告消息?

我已经配置了要使用的静态文件add_static_view

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

4

2 回答 2

7

Pyramid 使用标准mimetypes模块根据扩展名猜测 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
于 2012-10-04T12:29:03.973 回答
1

只需在 Pyramid Web 应用程序初始化的地方添加以下代码。

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

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

于 2014-11-13T19:46:22.683 回答