Cassini上的ASP.NET MVC:如何强制“content”目录返回304s而不是200s?

时间:2009-04-27 21:57:26

标签: asp.net asp.net-mvc visual-studio-2008 cassini

场景:我在Visual Studio 2008中开发了一个ASP.NET MVC应用程序。有一个名为“Content”的根文件夹,用于存储图像和样式表。当我在本地运行(使用Cassini)并浏览我的应用程序时,“内容”目录中的每个 资源 总是下载。使用Firebug,我可以验证Web服务器返回HTTP 200(“ok”)。

渴望:我希望Cassini返回HTTP 304(“未修改”)而不是200.这是在IIS7下运行网站时的行为。

推理:我正在处理的网站拥有大量静态资源(通常每页多达40个)。在IIS7上浏览网站的速度非常快,因为浏览器会(正确)缓存这些资源。但是,浏览本地计算机上的站点非常缓慢。

在IIS7上以1秒以下呈现的页面需要30秒才能在Cassini上呈现。实际上更快让我每隔几分钟上传整个网站并从那里进行测试。 (是的,我认识到这是不正常和疯狂的。)

所以:如何指示/欺骗Cassini像IIS7一样处理“内容”目录

3 个答案:

答案 0 :(得分:27)

你确定问题是缓存吗?因为当我在Cassini上运行应用程序时,内容确实在我的机器上正确缓存。

我认为您遇到的问题可能是Firefox在解析IPv6地址时性能不佳,这会导致http://localhost:55555等地址的负载出现非常烦人的延迟。

我更改此行为的做法是将Firefox上的network.dns.disableIPv6首选项about:config更改为true。我建议尝试一下。

答案 1 :(得分:15)

我在Chrome中遇到过类似的问题。要解决此问题,请取消注释hosts文件中的IPv4 localhost行。显然,这些都是在Windows 7中默认注释的。

127.0.0.1       localhost
#::1             localhost

答案 2 :(得分:2)

另一个选择是简单地跳过卡西尼和debug under IIS。它非常简单,不会花费你十分钟的时间来启动和运行。在Cassini上浏览你的20页,无论如何你已经用过那段时间了;)

我注意到的一件事并不总是在指南中,如果你想在不同于http://localhost/的地址上进行调试,则需要手动将主机设置为本地IIS。这是通过在位于

hosts文件中添加一行来完成的

C:\ Windows \ System32下\驱动程序\等\主机

使用记事本打开文件(您需要“以管理员身份运行”,以便在您使用Windows Vista并启用用户帐户控制时能够保存...)并添加您的主机。例如,要在http://mysite/下进行调试,请添加

mysite         127.0.0.1