Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css CloudFront、S3和Apache的CORS配置问题_Css_Apache_Amazon Ec2_Amazon S3_Amazon Cloudfront - Fatal编程技术网

Css CloudFront、S3和Apache的CORS配置问题

Css CloudFront、S3和Apache的CORS配置问题,css,apache,amazon-ec2,amazon-s3,amazon-cloudfront,Css,Apache,Amazon Ec2,Amazon S3,Amazon Cloudfront,我有一个tomcat web应用程序,它使用CloudFront、Apache和S3进行静态内容交付。静态内容使用版本化的文件夹结构,允许零停机升级: V1 css images javascript fonts V2 css images javascript fonts etc 对于除css文件以外的所有文件,这些文件直接从应用程序引用到CDN。但是,支持现有的企业web应用程序是必要的,因此不能更改现有的/图像和/字体引用

我有一个tomcat web应用程序,它使用CloudFront、Apache和S3进行静态内容交付。静态内容使用版本化的文件夹结构,允许零停机升级:

V1
    css
    images
    javascript
    fonts
V2
    css
    images
    javascript
    fonts
etc
对于除css文件以外的所有文件,这些文件直接从应用程序引用到CDN。但是,支持现有的企业web应用程序是必要的,因此不能更改现有的/图像和/字体引用

为了解决这个问题,我在ApacheEC2上设置了一个自定义源,作为S3 bucket的反向代理。它使用css文件中的referer头将图像引用指向正确的目录

这很好,除了firefox报告EC2上发生CORS冲突的字体。这对我来说没有任何意义,因为所有内容都托管在S3上

尽管如此,我在S3 bucket中设置了CORS配置,在apache中设置了一个用于Access-Allow-Control-Origin的头,CloudFront传递了Origin头。css文件可以很好地提供,没有违反CORS的情况,但是不会提供字体。Apache中是否有我缺少的配置,或者是其他配置?如果能得到任何帮助,我将不胜感激


感谢2014年6月26日AWS在CloudFront中添加了对CORS的支持,您正在使用此支持吗

此答案提供了有关为特定发行版启用it的信息:

如果未启用此功能,那么我的猜测是CloudFront缓存了一个响应,而没有Access Allow Control Origin标头,并且不管请求中发送的是哪个源,都会为该响应提供服务