我正在尝试优化html网页,yslow的建议之一是:
使用无cookie的域有11个组件不是 自由cookie的
所以我按照我见过的标准解决方案之一创建了一个子域static.mysite.com并将图像放在那里。
但是我仍然遇到了完全相同的问题 - 每个图像仍在传递cookie,并且同样的yslow消息。
那么如何让这个子域名成为无cookie?
答案 0 :(得分:-1)
我有同样的问题。子域根本不起作用,所以我使用了另一个域名,它解决了问题。
答案 1 :(得分:-4)
当浏览器发出静态图像请求并将cookie与请求一起发送时,服务器对这些cookie没有任何用处。因此,他们只会毫无理由地创建网络流量。您应该确保使用无cookie请求请求静态组件。创建一个子域并在那里托管所有静态组件。
如果您的域名是www.example.org,则可以在static.example.org上托管您的静态组件。但是,如果您已经在顶级域example.org上设置了cookie而不是www.example.org,那么对static.example.org的所有请求都将包含这些cookie。在这种情况下,您可以购买一个全新的域,在那里托管您的静态组件,并保持此域无cookie。雅虎使用yimg.com,YouTube使用ytimg.com,亚马逊使用images-amazon.com等。
在无cookie域上托管静态组件的另一个好处是,某些代理可能会拒绝缓存使用cookie请求的组件。在相关说明中,如果您想知道是否应该使用example.org或www.example.org作为主页,请考虑cookie的影响。省略www会让您别无选择,只能将cookie写入* .example.org,因此出于性能原因,最好使用www子域并将cookie写入该子域。
来源 - http://developer.yahoo.com/performance/rules.html
修改强>
如果您在顶级域名(例如yourwebsite.com)上设置Cookie,则所有子域(例如static.yourwebsite.com)也将包含已设置的Cookie。因此,在这种情况下,如果要使用无cookie域,则需要使用单独的域名来提供静态内容。但是,如果您在www子域(例如www.yourwebsite.com)上设置cookie,则可以创建另一个子域(例如static.yourwebsite.com)来托管所有静态文件,这些文件将不再导致任何cookie被发送。
对于Wordpress,您可以使用此配置:
define("WP_CONTENT_URL", "http://static.yourwebsite.com");
define("COOKIE_DOMAIN", "www.yourwebsite.com");
详细信息 - https://www.keycdn.com/support/how-to-use-cookie-free-domains/
编辑2
您需要将静态内容移动到新创建的子域的wp-content文件夹中!