场景:我在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一样处理“内容”目录?
答案 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