Asp.net mvc ASP.NET MVC与Amazon cloudfront-适用于cookile免费域的YSlow F级

Asp.net mvc ASP.NET MVC与Amazon cloudfront-适用于cookile免费域的YSlow F级,asp.net-mvc,cdn,amazon-cloudfront,yslow,Asp.net Mvc,Cdn,Amazon Cloudfront,Yslow,我正在使用Amazon Cloudfront CDN为ASP.NET MVC网站提供资产服务。当我使用YSlow分析我的站点时,我得到了一个F级的无cookie域。它特别指出,Cloudfront上承载的资产是标记了如下URL(这不是真正的资产)的罪魁祸首: 有没有办法让Cloudfront无cookie?是否需要在客户端或服务器级别执行此操作 多谢各位 JP此警告表明您正在使用单个域(例如example.com)托管您的网站-包括动态和静态资源。据推测,您还创建了CloudFront发行版以

我正在使用Amazon Cloudfront CDN为ASP.NET MVC网站提供资产服务。当我使用YSlow分析我的站点时,我得到了一个F级的无cookie域。它特别指出,Cloudfront上承载的资产是标记了如下URL(这不是真正的资产)的罪魁祸首:

有没有办法让Cloudfront无cookie?是否需要在客户端或服务器级别执行此操作

多谢各位


JP

此警告表明您正在使用单个域(例如example.com)托管您的网站-包括动态和静态资源。据推测,您还创建了CloudFront发行版以加快内容交付。我将把它称为d123.cloudfront.net

当用户在您的网站上进行授权时(您并没有明确说明,但我认为这是服务器设置一些浏览器cookie时最常见的情况),您的浏览器会保存会话ID(或类似)cookie,并在每次请求时将其发送回服务器。然后,服务器使用该cookie对用户进行身份验证,并允许他访问私有内容部分

您通常不需要授权访问静态资源,例如图像、CSS和JavaScript文件。然而,浏览器在请求此类资源时仍会发送cookie,浪费了客户端(和服务器)的几个字节带宽


您要做的是将静态资源和动态资源分开。例如,您可以设置单独的CloudFront发行版(例如d999.CloudFront.net)来交付您的图像。当从d999.cloudfront.net请求图像时,浏览器将不会在d123.cloudfront.net上发送用于身份验证的cookie

我可以想到一个单独的子域来提供无cookie的静态内容,但不确定如何在cloudfront中进行这些设置。。。。你能在这件事上给我们一些提示吗?