【问题标题】:Bypassing Firefox and IE's cross-domain policy for webfonts绕过 Firefox 和 IE 的 webfonts 跨域策略
【发布时间】:2013-12-20 17:04:26
【问题描述】:

我使用 Google App Engine 设置了一个静态服务器,这样我就可以存储字体文件、可下载文件(例如 zips 和其他应用程序文件),对于 Chrome、Safari 和 Opera,它运行良好,但是对于 Firefox 和IE 我的 webfonts 出现跨域“不允许”错误。我正在使用 Python 2.7 运行时,并且发现了一些似乎不起作用的方法。

第一个是在我的应用程序的根目录中设置一个crossdomain.xml 文件(但是我不知道我是否应该使用 Python 文件或我的 app.yaml 为我的应用程序路由/配置它因为我还没有看到它的例子)但无论如何,这是我的代码:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="all"/>
    <allow-access-from domain="*" to-ports="*" secure="false"/>
    <allow-http-request-handlers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>

第二个只是设置一个普通的.htaccess 文件(但同样,我不知道如何配置/路由它,所以这可能是唯一的问题)。这是代码:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Methods "GET"
    Header set Access-Control-Allow-Credentials "false"
</IfModule>

但是当我重新部署我的静态服务器时,我仍然在 Firefox 和 IE 中遇到错误。我对 Python 的体验(以及后端阶段,真的)几乎没有,所以如果我做错了什么或忘记了重要的部分,请原谅我。如有必要,我可以提供我的app.yamlmain.py 的代码(但这真的很简单)。我正在积极使用app.yaml 来路由crossdomain.xml.htaccess,并且,虽然找到并正确路由了页面,但它仍然没有在FF 和IE 中显示webfonts。

任何帮助将不胜感激。

【问题讨论】:

    标签: internet-explorer google-app-engine firefox python-2.7 webfonts


    【解决方案1】:

    要将 crossdomain.xml 文件作为 App Engine 中的静态文件提供,请将以下内容添加到您的 app.yamlhandlers: 键下:

    handlers:
    - url: /crossdomain.xml
      static_files: static/crossdomain.xml
      upload: static/crossdomain.xml
    

    当然,handlers: 键下几乎肯定还有其他 url: 条目。

    url:必须/crossdomain.xmlstatic_files: 条目应该是实际文件的相对路径,将其存储在 static/ 目录中。您还必须包含一个upload: 键以告诉上传者正在提供什么文件。

    请参阅Static file pattern handlers 文档。

    【讨论】:

    • 谢谢!这行得通。我有类似的东西,但我可能没有做对一件小事。 :P 这是我缺乏经验的影响。显然我必须等待 19 个小时才能获得赏金,但是,我会在那之后。
    猜你喜欢
    • 1970-01-01
    • 2011-02-20
    • 2015-07-11
    • 2015-12-11
    • 2010-09-09
    • 2014-02-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多