【发布时间】:2015-11-23 05:36:40
【问题描述】:
我有一个使用 cloudfront 作为资产主机的 rails 应用程序。一切都很好,除了字体。为了让浏览器从云端提取缓存的字体,我使用了font_assets gem。不幸的是,这不是我所希望的灵丹妙药。
在 config/environments/production.rb 中,我有这个
config.font_assets.origin = 'https://www.MyURL.com'
我也将 force_ssl 设置为 true。
当我卷曲其中一种字体时,这就是我所看到的。
$ curl -i https://**<mycloudfront domain name>**/assets/opensans-regular-webfont-debcfe09b9fe1d259815c339e9ef4a9f.woff
HTTP/1.1 401 Unauthorized
Content-Type: application/font-woff
Content-Length: 0
Connection: keep-alive
Server: Cowboy
Strict-Transport-Security: max-age=31536000
WWW-Authenticate: Basic realm=""
Cache-Control: no-cache
X-Request-Id: f1215a95-603c-4b8a-acc9-077a292ee538
X-Runtime: 0.006937
Access-Control-Allow-Origin: https://<**Origin Domain Name**>
Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: x-requested-with
Access-Control-Max-Age: 3628800
Date: Mon, 23 Nov 2015 05:23:18 GMT
X-Rack-Cache: miss
Via: 1.1 vegur, 1.1 87a5dc4906ffb6323c3ec65df37e46f1.cloudfront.net (CloudFront)
Vary: Accept-Encoding
X-Cache: Error from cloudfront
X-Amz-Cf-Id: 8EQxf_pJ-fAiEis8ztx9icjRbFy5CWPn_ccOFO-WjzgICN-_NSOing==
鉴于源域列在云端源中,我对为什么会收到 401 感到困惑。
知道我在这里做错了什么吗?
【问题讨论】:
-
请问您的部署结构?你有几个选项取决于设置 CORS
-
我在 Heroku 上托管应用程序并使用 Cloudfront 缓存资产。对于 Heroku,它只是一个“推送部署”结构。这能回答你的问题吗?
-
我之前自己做过这个设置,不记得做过什么特别的事情。但是尝试 CloudFront Distributions > Origins > Origin Policy Protocol> Match Origin .. 你已经有了 Access-Control-Allow-Origin: https:// 所以我没有看到任何问题。也试试这个。将您的 CloudFront 分配行为编辑为转发标头。
-
您的意思是我应该将我的 CloudFront 分配行为编辑为“将标头转发到 .”,即转发所有标头?
-
不错,值得一试
标签: ruby-on-rails ssl amazon-web-services amazon-cloudfront