Cors 跨来源资源共享(访问控制允许来源标头)机架空间云文件CDN

Cors 跨来源资源共享(访问控制允许来源标头)机架空间云文件CDN,cors,cdn,rackspace-cloudfiles,Cors,Cdn,Rackspace Cloudfiles,我在我们的Chrome live站点上发现以下错误,原因是我们的rackspace CDN上嵌入了CSS中的字体文件: 跨源资源共享策略已阻止加载来自源“”的字体:请求的资源上不存在“访问控制允许源”标题。因此,不允许访问源“” 从CDN获取这些文件时,如何将Access Control Allow Origin头添加到响应中?最终通过文档和Rackspace工作人员的帮助解决了这一问题 重要的是,对于只包含CDN文件的支持CDN的容器,调整容器的元头是没有意义的。这些仅由不在CDN上的文件继承

我在我们的Chrome live站点上发现以下错误,原因是我们的rackspace CDN上嵌入了CSS中的字体文件:

跨源资源共享策略已阻止加载来自源“”的字体:请求的资源上不存在“访问控制允许源”标题。因此,不允许访问源“”


从CDN获取这些文件时,如何将Access Control Allow Origin头添加到响应中?

最终通过文档和Rackspace工作人员的帮助解决了这一问题

重要的是,对于只包含CDN文件的支持CDN的容器,调整容器的元头是没有意义的。这些仅由不在CDN上的文件继承

我必须调整字体文件本身的响应标题。不幸的是,目前只有API支持这一点,我在Windows7的命令行中使用了curl


验证

第一步是验证:

curl -d "{\"auth\":{\"RAX-KSKEY:apiKeyCredentials\":{\"username\":\"my_username\",\"apiKey\":\"my_api_key\"}}}" -H "Content-Type: application/json" "https://identity.api.rackspacecloud.com/v2.0/tokens"
然后从响应中提取
令牌的
id
,以及与
cloudFiles
相关的
端点的
publicURL
。我将响应复制到Notepad++中,并分别搜索
token
cloudfiles


调整文件响应头

我尝试使用以下命令调整标题:

curl -i -XPOST -H "x-auth-token: my-auth-token" -H "Access-Control-Expose-Headers: Access-Control-Allow-Origin" -H "Access-Control-Allow-Origin: *" https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_my-end-point/container/pseudo-dir1/psuedo-dir2/my-site-icons.ttf

有效吗?

我得到了一个
HTTP/1.1 2xx
响应,并检查它是否与以下各项一起工作:

curl -i -XGET -H "X-Auth-Token: my-auth-token" https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_my-end-point/container/pseudo-dir1/psuedo-dir2/my-site-icons.ttf
不幸的是,您必须等待文件的TTL过期,或者清除它以查看实时结果。当我这么做的时候,我花了一天的时间来清理边缘。我通过以下方式检查了实时版本:

curl -i -XGET https://live-version-container-hash.ssl.cf3.rackcdn.com/pseudo-dir1/psuedo-dir2/my-site-icons.ttf

在上载时设置文件响应头 我决定向我的文件添加一个版本,并在上传过程中添加标题:

curl -i -XPUT -H "x-auth-token: my-auth-token" -H "Access-Control-Expose-Headers: Access-Control-Allow-Origin" -H "Access-Control-Allow-Origin: *" https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_my-end-point/container/pseudo-dir1/psuedo-dir2/my-site-icons1.0.0.ttf -T my-site-icons.tff
从文件
my site icons.tff
所在的本地目录执行