1

我使用S3和CloudFront的存储我的网站的图片,CSS和JS文件 - 这是不是静态的,托管合适的Web服务器简单的重定向规则亚马逊S3

上。由于CSS文件频繁更改,我使用版本号来确保用户浏览器在更改时重新加载它。当我主持我的Apache Web服务器上的CSS文件,我用下面的重定向规则

RewriteEngine On 
# CSS Redirection (whatever.min.5676.css is redirected to whatever.min.css) 
RewriteRule ^(.*)\.min\.[0-9]+\.css$ $1.min.css 

有了这个简单的规则,http://www.example.com/all.min.15.css重定向到http://www.example.com/all.min.css

我怎么能重现这样的规则与Amazon S3和/或CloudFront? 即有http://example.amazonaws.com/mybucket/css/all.min.3.csshttp://example.amazonaws.com/mybucket/css/all.min.42.css重定向到http://example.amazonaws.com/mybucket/css/all.min.css

(注:我的S3存储未配置为一个网站,但它应该是这样,以使重定向规则?)

回答

0

注:这个答案不使用任何规则。这可能不是正确的答案。

我会使用的查询参数来处理不同的版本,如:

http://example.amazonaws.com/mybucket/css/all.min.css?ver42 
http://example.amazonaws.com/mybucket/css/all.min.css?42 
http://example.amazonaws.com/mybucket/css/all.min.css?ver=42 
http://example.amazonaws.com/mybucket/css/all.min.css?20141014 

确切的说,在我的动态网页,该版本参数存储在一个变量,并追加到URL(包括CSS和JS)。在开发过程中,我只需要增加/设置一个变量来强制浏览器加载新版本。这样,即使在Apache上也不需要重写规则。

缓存也可以作为Last-ModifiedETag标题保持完整。

希望这会有所帮助。