5

似乎大多数人使用 CDN 来放置图像和/或视频。将您的 js 和 css 也放在 cdn 上是否明智?

4

5 回答 5

3

我相信是这样。但是,如果其中任何一个是动态生成的,您将希望在文件上放置一个相对较低的 ttl(生存时间),以便 CDN 知道提取新副本。但是,如果它们不是,我认为将它们倾倒到亚马逊的 S3 上会很好。

一个警告 - 确保您有一种简单的方法来测试和开发而不使用 CDN,因为在此过程中缓存可能会令人头疼。

[编辑]
在获得更多经验之后,我认为最好对这些文件进行版本控制,然后使用生成视图的任何内容更新它们的引用。

例如:

style.20111112.css
shoppingcart.20111113.js

这消除了对超低 ttl 和清除缓存副本的 CDN 的需求。

于 2010-07-06T15:37:11.787 回答
3

虽然原则上这是一个好主意,但始终有一个备份

使用 Javascript,如果 CDN 出现故障或客户端由于某种原因无法访问该 js,那么使用本地副本作为备份将使您的站点保持灵活。

例如,使用 jQuery,您可以通过以下代码片段获得两全其美的效果:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined')
    document.write(unescape("%3Cscript src='/scripts/jquery-1.4.2.min.js' type='text/javascript'%3E%3C/script%3E"));
</script>

来源和更多信息

于 2010-07-06T15:38:45.383 回答
1

是的,但是...在将 CSS 和 JS 放在 CDN 上之前

合并任何单独的 CSS 文件并最小化它们 - 浏览器在它们全部下载之前不会开始呈现页面。

确定页面需要哪些JS文件下载,哪些可以稍后下载,然后将需要的放在页眉中,其他放在页面底部或异步加载(不要忘记缩小它们也)

CDN 为您带来了几场胜利

  1. 减少延迟
  2. 额外的主机名下载
  3. 如果您正确使用它,则可以使用无 cookie 的域来存储静态内容。

在本演示文稿中,有一些关于不同优化性能的真实世界示例,这些示例前几天正在循环播放 - https://docs.google.com/present/view?id=0ASIJhpwrlBx6ZHA5emJmcF81MmM5Zzk3NmM0&authkey=COe29aAD&hl=en_GB(不是我的)

于 2011-09-22T11:47:10.737 回答
0

我认为它没有任何问题(尤其是对于 javascript,如果您有多个网站使用相同的 javascript 代码)。

于 2010-07-06T15:36:35.170 回答
0

这里的大部分答案都是由没有 CDN 经验的人写的。

如果您使用 Akamai 或其他大型 CDN 提供商之一,您会发现 CDN 会针对内容访问您的站点(因此您不会“备份”您的数据),然后会缓存数据,直到您使其无效。

像 Akamai 这样的 CDN 将产生巨大的影响——除非您的边缘服务器分布在全球各地。我们在德国的一些客户将页面加载时间从 15 秒缩短到不到 3 秒。

我建议阅读维基百科的好处部分以了解更多信息。

于 2011-10-25T19:54:31.057 回答