【发布时间】:2014-03-29 11:55:37
【问题描述】:
首先让我提一下,我已经进行了一些挖掘,但似乎无法找到我要寻找的正确答案。
我正在使用一些外部资源的网站工作:
- 谷歌分析 (//www.google-analytics.com/analytics.js)
- 最新的 jQuery 版本 (http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js)
- Google 字体 (http://fonts.googleapis.com/css?family=Lato:400,300)
使用内容交付网络 (CDN)
我在“使用内容交付网络 (CDN)”方面的成绩为“F”。一个不同的SO Post 链接到 YSlow 常见问题解答 (direct link) 但这似乎表明我需要在我的浏览器上定义我的 CDN,这对我来说似乎是一个快速修复,但这并不能解决其他问题浏览器和/或设备。
添加过期标题
至于“添加过期标题”等级,我得到一个 E。问题是,这就是我得到的:
There are 3 static components without a far-future expiration date.
(2014/2/26) http://fonts.googleapis.com/css?...
(2014/2/26) http://www.google-analytics.com/analytics.js
(2014/2/26) http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js
我将如何解决这个问题?我的本地文件都由我的.htaccess 处理,如下所示:
AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/ico "access plus 1 year"
ExpiresDefault "access plus 7 days"
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
# access plus 1 year
Header set Cache-Control "max-age=31536000"
</FilesMatch>
这个SO post 似乎表明这是不可能的,或者我调用了一个本地脚本,我使用我的带宽来加载(和缓存)所需的外部文件。
所以,考虑到这些事情,这就是我正在研究的内容:
- 外部资源应该是 CDN 的,但 YSlow 会读取我的本地偏好,这会因用户而异,因此我需要 YSlow 官方网站提出的
about:config解决方案的替代方案。 - 过期由文件所在的服务器设置,所以我似乎无权定义它的过期值。因此,根据我收集到的信息,我可以将这些文件携带到我的服务器上或使用本地 PHP 文件并从位于我的服务器的所述 PHP 文件中缓存它,但这似乎不是最佳选择。有没有办法解决这个问题?
【问题讨论】:
标签: performance cdn yslow