- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在阅读Google's documentation关于提高网站速度。他们的建议之一是从“无 cookie 域”提供静态内容(图像、CSS、JS 等):
Static content, such as images, JS and CSS files, don't need to be accompanied by cookies, as there is no user interaction with these resources. You can decrease request latency by serving static resources from a domain that doesn't serve cookies.
Google 表示,最好的方法是购买一个新域名并将其设置为指向您当前的域名:
To reserve a cookieless domain for serving static content, register a new domain name and configure your DNS database with a CNAME record that points the new domain to your existing domain A record. Configure your web server to serve static resources from the new domain, and do not allow any cookies to be set anywhere on this domain. In your web pages, reference the domain name in the URLs for the static resources.
这是非常简单的内容,除了它说“配置您的 Web 服务器以提供来自新域的静态资源,并且不允许在此域上的任何位置设置任何 Cookie ”。 From what I've read ,IIS 中没有设置允许您说“提供静态资源”,那么如何防止 ASP.NET 在这个新域上设置 cookie?
目前,即使我只是从新域请求 .jpg,它也会在我的浏览器上设置一个 cookie,即使我们应用程序的 cookie 设置为我们的旧域。例如,ASP.NET 设置了一个“.ASPXANONYMOUS”cookie(据我所知)我们并没有告诉它这样做。
抱歉,如果这是一个真正的新手问题,我是新手!
谢谢。
最佳答案
这就是我在网站中所做的:
your.domain.com
domain.com
,否则子域将不会是无cookie的Static
的文件夹Static
文件夹。static.domain.com
未启用
。现在您有了一个静态网站。要进行设置,请打开 Static
文件夹下的 web.config
文件并替换为以下文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<sessionState mode="Off" />
<pages enableSessionState="false" validateRequest="false" />
<roleManager>
<providers>
<remove name="AspNetWindowsTokenRoleProvider" />
</providers>
</roleManager>
</system.web>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
</staticContent>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
这会将文件缓存 30 天,删除 RoleManager(我不知道它是否会改变任何内容,但我删除了我能找到的所有内容),并从响应 header 中删除了一个项目。
但是这里有一个问题,即使部署新版本,您的内容也会被缓存,因此为了避免这种情况,我为 MVC 制作了一个辅助方法。基本上,您必须附加一些查询字符串,每次更改这些文件时这些查询字符串都会更改。
default.css?v=1 ?v=2 ...
<小时/>
我的 MVC 方法获取最后写入日期并附加到文件 url 上:
public static string GetContent(this UrlHelper url, string link)
{
link = link.ToLower();
// last write date ticks to hex
var cacheBreaker = Convert.ToString(File.GetLastWriteTimeUtc(url.RequestContext.HttpContext.Request.MapPath(link)).Ticks, 16);
// static folder is in the website folders, but instead of
// www.domain.com/static/default.css I convert to
// static.domain.com/default.css
if (link.StartsWith("~/static", StringComparison.InvariantCultureIgnoreCase))
{
var host = url.RequestContext.HttpContext.Request.Url.Host;
host = String.Format("static.{0}", host.Substring(host.IndexOf('.') + 1));
link = String.Format("http://{0}/{1}", host, link.Substring(9));
// returns the file URL in static domain
return String.Format("{0}?v={1}", link, cacheBreaker);
}
// returns file url in normal domain
return String.Format("{0}?v={1}", url.Content(link), cacheBreaker);
}
并使用它(MVC3 Razor):
<link href="@Url.GetContent("~/static/default.css")" rel="stylesheet" type="text/css" />
如果您使用的是另一种应用程序,您可以执行相同的操作,创建一个在页面上附加 HtmlLink 的方法。
关于asp.net - 停止从域(又名 "cookieless domain")设置 cookie 以提高站点性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3060775/
我的生产服务器上有一个非常奇怪的行为,一周内只发生几次。在表单登录 POST 上,重定向被发送到看起来像无 cookie 的 URL,例如: “/(F(kD5qGnK-0b5L80VYgScenFuC
我尝试设置 在我的 web.config 中,但我不知道它们是什么。 我想了解 ASP.Net . 自动检测 使用Cookies 使用设备配置文件 使用Uri 真 假 用简短的文字告诉我。 最佳答
我在一个移动网站上工作,我们不能依赖手机访问该网站来获得 cookie 支持。我正在为 session 使用 cookieless 选项,想知道是否有一种方法可以指定 sessionId 在 URL
我正在尝试实现 this article 的“将信息写入 UserData”部分, 但当 cookie 是 URI 的一部分时,它无法正常工作。 我的代码: // Create the cookie
我为所有静态 Assets (static.example.com) 创建了一个新的子域,方法是创建一个新的 A 记录并将其指向具有新 IP 地址的同一服务器,然后创建一个具有与 DocumentRo
发现还没有为此找到一些东西有点奇怪,所以也许我走错了路。 但是无论如何... 我只是设置了一个子域来存储图像、样式等,出于优化目的,我不希望向其发送 cookie。将其命名为 static.domai
我的应用程序托管在 www.abc.co.in 上,托管静态内容的子域位于 static.abc.co.in 上。添加google analytics后,每次对子域的请求也包含cookies。如何避免
我们的 ASP.NET 4.0 应用程序的表单例份验证设置为 cookieless="AutoDetect"。我注意到如果用户为我们的登录页面添加了书签,书签链接将设置为 https://hostna
我们有一个需求,需要动态切换到cookieless session。下面的msdn链接显示,我们可以通过修改webconfig http://msdn.microsoft.com/en-us/libr
我正在开发一个 facebook 应用程序,所以由于 P3P,我不能依赖 cookie(隐私首选项项目),是的,这太痛苦了(请参阅 slides 18 and 19 on this slideshar
我不希望用户每次都必须输入密码,并且我不想将密码存储在本地。当用户第一次向我发送他们的用户名和密码时,我计划发回其密码的一些散列版本(密码+盐的散列),这些版本将被放入本地存储中,用于授权对我们的 W
考虑以下情况: Web 服务器正在运行 .NET 应用程序 . 客户端使用简单的 HttpWebRequest 向其 POST 数据(没有cookie)。 这个看似简单的案例导致了重大失败。 由于
我有一个 WebApplicatoon,我的一些客户希望在 IFrame 中使用它。但是,由于不支持在 Internet Explorer 的 IFrame 中保存 cookie,因此我的表单例份验证
Google 和 Yahoo! 提供的提示之一加速网页加载是配置一个无 cookie 子域来服务器静态内容。 如何在独立模式下使用 Tomcat 配置“无 cookie 子域”(这个问题不是关于如何使
我想使用 less ( http://lesscss.org/ ) 而不是 sass ( http://sass-lang.com/ ) 来预处理 css。我有一组用于静态资源的无 cookie 域。
我正在阅读Google's documentation关于提高网站速度。他们的建议之一是从“无 cookie 域”提供静态内容(图像、CSS、JS 等): Static content, such a
我想将我的环境配置为从 static.example.com 而不是 example.com/static 提供 css 和 javascript 文件。 第二个很方便,我可以编写我的 html 页面
是否可以将无 cookie session 与 cookie session 混合使用? 我有一个应用程序,可以捕获用户详细信息,然后将付款重定向到 ssl 页面。我想知道这是否可能? http://
我有一个使用 JQuery AJAX 的网站。使用此 JQuery 代码 $.post("/ajax/getsomedata.aspx", {'id': id }, function(data
如何遵守 IIS6 中的“从无 cookie 域提供静态内容”页面速度规则? 最佳答案 在 IIS6/IIS7/IIS7.5 中创建无 cookie 站点(或子域,这是一种非常常见的最佳实践)很简单:
我是一名优秀的程序员,十分优秀!