Performance 过期和CDN-YSlow问题

Performance 过期和CDN-YSlow问题,performance,cdn,yslow,Performance,Cdn,Yslow,首先让我提一下,我已经做了一些挖掘,但似乎找不到一个合适的答案,我要寻找的 我正在使用一些外部资源的网站上工作: 谷歌分析(//www.Google-Analytics.com/Analytics.js) 最新jQuery版本() 谷歌字体() 使用内容交付网络(CDN) 我在“使用内容交付网络(CDN)”上得了“F”级。一个指向YSlow FAQ()的不同链接,但这似乎表明我需要在浏览器上定义我的CDN,这似乎是一个快速修复方法,但这并不能解决其他浏览器和/或设备上的问题 添加过期标题 至

首先让我提一下,我已经做了一些挖掘,但似乎找不到一个合适的答案,我要寻找的

我正在使用一些外部资源的网站上工作:

  • 谷歌分析(//www.Google-Analytics.com/Analytics.js)
  • 最新jQuery版本()
  • 谷歌字体()
使用内容交付网络(CDN) 我在“使用内容交付网络(CDN)”上得了“F”级。一个指向YSlow FAQ()的不同链接,但这似乎表明我需要在浏览器上定义我的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>
AddType image/x-icon.ico
过期于
过期按类型映像/jpg“访问加1年”
过期按类型图像/jpeg“访问加1年”
ExpiresByType image/gif“访问加1年”
过期按类型图像/png“访问加1年”
ExpiresByType文本/css“访问加1个月”
过期按类型应用程序/pdf“访问加1个月”
ExpiresByType文本/javascript“访问加1个月”
ExpiresByType text/x-javascript“访问加1个月”
过期按类型应用程序/x-shockwave-flash“访问加1个月”
过期按类型图像/x图标“访问加1年”
过期按类型映像/ico“访问加1年”
ExpiresDefault“访问加7天”
#使用权加1年
标题集缓存控制“最大年龄=31536000”
这似乎表明这是不可能的,或者我调用了一个本地脚本,在这里我使用带宽加载(和缓存)所需的外部文件

因此,考虑到这些事情,以下是我所看到的:

  • 外部资源应该是CDN,但YSlow读取我的本地首选项,这将因用户而异,因此我需要一个替代方案,以替代YSlow官方网站提出的
    about:config
    解决方案
  • 过期是由文件所在的服务器设置的,因此我似乎无权定义文件的过期值。所以,从我收集的信息来看,我可以将这些文件带到我的服务器上,或者使用本地PHP文件并从位于我的服务器的PHP文件中缓存它,但这似乎不是最优的。有办法解决这个问题吗
  • 简短答复:

    当您从外部服务器加载资源时,您无法控制太多,但对于您的站点来说,这仍然是可以控制的。当使用像YSlow这样的工具时,重要的是不要在所有方面都陷入“a”等级。最好理解工具给你的提示,并据此做出决定

    详细答案:

    内容交付网络

    YSlow将报告其未识别为CDN的任何域的较低等级。你可以,那么它会反映出更好的成绩。我会添加
    font.googleapis.com
    ajax.googleapis.com
    ,因为两者的行为都像CDN。可以将其视为在YSlow副本中保存首选项。在这里添加域实际上并不会改变您的性能,它只会提高您的分数

    过期标题

    您无法控制从其他站点加载的内容的标题。您可以考虑的选项:

  • 继续使用外部网站;在这种情况下,这些都是相当好的表现,你的表现可能会相当好。忽略YSlow给你的低分数
  • 本地托管字体和jQuery文件,然后设置标题,如
    .htaccess
    中所示。这会给您一个更好的YSlow等级,但如果您的服务器比CDN慢,实际性能可能会更差。(见此)
  • 使用外部网站,但调整你的网址;在jQuery的情况下,如果您在更多版本级别(1.8.0而不是1.8)上指定,您将获得一个远未来的expires头(参见此)

  • 谢谢,这确实证实了我的大部分搜索和收集的信息。