我使用Google App Engine设置了一个静态服务器,因此我可以存储字体文件,可下载的文件(例如zip
和其他应用程序文件)以及Chrome,Safari和Opera,它的工作效果非常好,但是Firefox和IE我的网页字体出现跨域“不允许”的错误。我正在使用Python 2.7运行时,并找到一些似乎不起作用的方法。
第一个是在我的应用程序的根目录中设置一个crossdomain.xml
文件(但是我不知道我是否应该使用Python文件或我的{我为我的应用程序配置/配置它} {1}}因为我还没有看到它的一个例子)但是无论如何,这是我的代码:
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
但是当我重新部署我的静态服务器时,我仍然会在Firefox和IE中得到错误。我对Python的经验(以及后期,真的)几乎没有,所以如果我做错了或忘记了重要的部分,请原谅我。如有必要,我可以为我的<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>
和app.yaml
提供代码(但这非常简单)。我正在积极地使用main.py
来路由app.yaml
和crossdomain.xml
,并且在找到并正确路由页面时,它仍然没有在FF和IE中显示webfonts。 / p>
非常感谢任何帮助。
答案 0 :(得分:3)
要将crossdomain.xml
文件作为App Engine中的静态文件提供,请在app.yaml
密钥下的handlers:
添加以下内容:
handlers:
- url: /crossdomain.xml
static_files: static/crossdomain.xml
upload: static/crossdomain.xml
当然,url:
键下几乎肯定有其他handlers:
条目。
url:
密钥必须为/crossdomain.xml
。 static_files:
条目应该是实际文件的相对路径,将其存储在static/
目录中。您还必须包含一个upload:
密钥,以告知上传者正在提供的文件。