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標題保持完整。

希望這會有所幫助。