如何解决[从未设置cookie的域提供以下静态资源]

Jor*_*nes 7 cookies cookieless

我正在努力做一些我完全不知道的事情.当我ping我的网站时,我得到了这个结果:[Serve the following static resources from a domain that doesn't set cookies:].而且,这个结果是由我用于背景图像的图像引起的.我试图谷歌关于这个主题,但所有的答案似乎很难理解.这里有没有人知道它和任何解决它的简单解决方案?

veg*_*4me 7

我会尝试给出一个非常高级别的概述,因为你没有在你的问题中给出很多细节.请注意,有很多方法可以解决这个问题,我将尝试提供一个我认为易于理解的解决方案.

该消息表明,如果您的网站是www.company.com,那么您应该从www.companycdn.com加载静态内容.而这个新网站(www.companycdn.com)是一个简单的静态网站,不提供cookie.

为此,您需要将静态资源(例如图像)上传到第二个域.

然后将图像路径更新到新域.例如,而不是:<img src="logo.jpg"/>,您应该将其更改为此<img src="//www.companycdn.com/logo.jpg"/>

这个答案有更多信息:https://webmasters.stackexchange.com/questions/1772/how-do-i-set-up-a-cookie-less-domain


小智 7

通常,当您提供图像,JavaScript,CSS等内容时,没有理由伴随HTTP cookie,因为它会产生额外的开销.这就是很多工具报告这一点的原因.以下是两个快速简便的选项:

选项1 - 使用CDN

使用CDN托管您的图像,这些图像可以忽略cookie以及剥离cookie,这将完全阻止客户端接收Set-Cookie响应头.注意:您无法在Cloudflare上禁用Cookie.

选项2 - 将静态资产指向新域

这是WordPress的一个例子.

  1. 首先,创建一个子域名,例如static.domain.com.这是您将从中提供所有文件的地方.
  2. 使用CNAME将子域指向/ wp-content目录.
  3. 编辑您的wp-config.php文件以反映以下内容:

define("WP_CONTENT_URL", "http://static.domain.com"); 
define("COOKIE_DOMAIN", "domain.com");
Run Code Online (Sandbox Code Playgroud)

有关如何修复" 无Cookie域"中的" 服务静态内容"警告,请参阅此文章中的更多内容.

  • @twknab随着HTTP/2的使用越来越多,这些优化变得不那么重要了 - 非阻塞并行多路复用请求和响应_以及类似的并发魔法.优化仍然有效,但对某些网站来说却变得微不足道.从最终用户PoV我可以肯定,除了更容易管理DNS之外,选择您自己域的子域没有真正的技术优势,但是从托管PoV可能更容易配置Web服务器在静态内容的公共父域名下,取决于所选服务器模块的复杂程度等. (2认同)