在没有S3的情况下设置Amazon Cloudfront

时间:2014-03-03 17:07:50

标签: amazon-web-services amazon-s3 cdn amazon-cloudfront

我想使用Cloudfront从我的静态网站提供图像和CSS。我已经阅读了无数文章,展示了如何使用Amazon S3设置它,但我想在我的主机上托管文件并使用云端加速所述文件的传送,我只是不确定如何去做。

到目前为止,我已经使用Origin Domain和CName在CloudFront上创建了一个分发版并进行了部署。

Origin Domain:example.me CName media.example.me

我为我的域添加了CNAME:

media.mydomain.com,目的地为xxxxxx.cloudfront.net

现在这就是我被困住的地方?我是否需要将HTML中的链接更新为该cname,因此如果样式表为http://example.me/stylesheets/screen.css,我是否将其更改为http://media.example.me/stylesheets/screen.css

和样式表中的图像是../images/image1.jpg到http://media.example.me/images/image1.jpg

发现它有点令人困惑如何链接所有内容这是我第一次真正涉足使用CDN。

由于

2 个答案:

答案 0 :(得分:2)

是的,您必须更新HTML中的路径以指向CDN。通常,如果您有部署/构建过程,则此链接更改可以在此时完成(这样开发时间可以使用本地文件)。

此处还要处理的另一个重要事项是CSS / JS等的版本控制。您可能会经常更改CSS / JS。当您进行任何更改时,通常CDN需要24小时才能反映出来。 (另一种选择是使CDN上的文件无效,但这是明确的,并且不鼓励)。建议的方法是生成类似“media.example.me/XYZ/stylesheets/screen.css”的路径,并将此XYZ更改为每个部署的不同编号(时间戳/纪元将执行)。这种方式对于每个部署,您只需要使HTML无效,而其他文件无论如何都是新的路径并且会加载新的。这种技术通常称为手指打印URL。

答案 1 :(得分:0)

是的,您将更新对CSS文件的引用以通过CDN域加载。如果CSS中的图像路径不包含域,则它们也将通过cloudfront自动加载。