asp.net网站静态资源优化-开发与生产部署-从子域提供静态资源

asp.net网站静态资源优化-开发与生产部署-从子域提供静态资源,asp.net,performance,optimization,Asp.net,Performance,Optimization,我一直在研究如何优化网站,特别是CSS精灵,以及如何从static.mysite.com子域提供静态资源。参考: 我们正在使用VisualStudio附带的cassini进行开发,它不支持子域。我的静态资源包含在文件夹www.mysite.com/Contents/static/中。。 这对卡西尼和IIS7都有效 如果我应该将这些静态资产移动到static.mysite.com,而不对js/css/images的代码库引用进行太多更改,那么最理想的方法是什么 我担心的是cassini不支持子域,

我一直在研究如何优化网站,特别是CSS精灵,以及如何从static.mysite.com子域提供静态资源。参考:

我们正在使用VisualStudio附带的cassini进行开发,它不支持子域。我的静态资源包含在文件夹www.mysite.com/Contents/static/中。。 这对卡西尼和IIS7都有效

如果我应该将这些静态资产移动到static.mysite.com,而不对js/css/images的代码库引用进行太多更改,那么最理想的方法是什么

我担心的是cassini不支持子域,这让我觉得我应该有2个代码库?或者我应该在构建过程中将代码库中对静态资产的引用从mysite.com/contents/static更改为static.mysite.com?你们怎么办


PS:顺便说一句,如果你们能给我推荐一些优秀的asp.net性能调优文章,那就太好了,尽管谷歌搜索有帮助了

我的第一个问题是。。。你为什么要用卡西尼号?为什么不针对您实际使用的服务器进行开发

两个代码库是一个可怕的想法


除非您实际上是从两台不同的机器提供资源,否则您不会看到www.mysite.com/contents/static和static.mysite.com之间的性能变化。只是不会发生。我普遍认为雅虎的性能建议非常好。。。但这一点很愚蠢。

这类问题会成为有关开发环境和开发人员工作流程的问题

Cassini在您的开发环境中很好,只要您最终能够针对生产环境中使用的目标Web服务器进行系统/用户验收测试

如果您想继续使用Cassini,我会选择一个单独的Web服务器,比如lighthttpd,用于在开发过程中提供静态内容。一旦您从正确的文档根目录获得它,您几乎可以忘记它

或者,如果你对运行IIS持开放态度,那么你可以很容易地离开卡西尼号


对于代码中的静态内容引用,一般的方法是使用母版页或配置中的变量为每个静态资源建立绝对URL。我不建议在构建/部署时使用任何字符串替换。

您可能想要的是完全不同的域名。例如,谷歌使用gstatic.com,Facebook使用fbcdn.net提供静态内容。子域之间的cookie可能会被共享,并且不必要地发送/接收到提供静态内容的子域或从该子域接收静态内容,从而增加开销。您确实在浏览器级别进行了DNS查找,但从无cookie的域中提供静态内容所带来的降低开销是值得的。

XP只支持IIS 5.1,我认为它不支持子域?可能,但关键是,您可以选择完全避免IIS Cassini加上另一个用于静态内容的简单/轻量级Web服务器。我的意思是,您希望所有开发人员都使用Win2k8 IIS7??我们只有xp机器:是的,我们提供了很多图像,除了使用css精灵之外,我们还希望提供子域中的静态内容。原因您的浏览器只能与DNS/服务器建立2-4个活动连接,以防止DoS攻击。因此,从另一个dns/子域提供内容肯定有助于IIS7在Windows XP上正常运行。它不允许多个站点开箱即用,除非它从6变为7?,但是有办法解决这个问题。