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