【问题标题】:asp.net website optimization for static resources- development vs production deployment - serving static resources from subdomain静态资源的 asp.net 网站优化 - 开发与生产部署 - 从子域提供静态资源
【发布时间】:2010-02-01 22:11:47
【问题描述】:

我一直在研究优化网站,特别是研究 CSS sprite,并从子域 (static.mysite.com) 提供静态资源。参考:Split Components Across Domains

我们正在使用 cassini(Visual Studio 附带)进行开发,它不支持子域。我的静态资源包含在文件夹www.mysite.com/Contents/Static/.. 这适用于 cassini 和 IIS7。

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

我担心的是 cassini 不支持子域,这让我觉得我应该有 2 个代码库?或者我应该在构建期间以某种方式将代码库中对静态资产的引用从mysite.com/contents/static 更改为static.mysite.com?各位大佬是怎么处理的?

PS:顺便说一句,如果你们能向我指出好的 asp.net 性能调整文章(尽管谷歌搜索有帮助),那就太好了

【问题讨论】:

    标签: asp.net performance optimization


    【解决方案1】:

    这种问题变成了关于您的开发环境和开发人员工作流程的问题。

    只要您最终针对生产环境中使用的目标网络服务器进行系统/用户验收测试,Cassini 就可以在您的开发环境中使用。

    如果您想继续使用 Cassini,我会选择一个单独的网络服务器,例如 lighthttpd,用于在开发期间提供静态内容。一旦你从正确的文档根目录提供它,你几乎可以忘记它。

    或者,如果您愿意运行 IIS,那么您可以很容易地摆脱 Cassini。

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

    【讨论】:

    • XP 只支持 IIS 5.1,它(我相信)不支持子域?
    • 可能,但关键是您可以选择完全避免使用 IIS(Cassini 加上另一个用于静态内容的简单/轻量级网络服务器)。
    【解决方案2】:

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

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

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

    【讨论】:

    • 我的意思是你希望所有的开发者都使用 Win2k8 IIS7 ??我们只有 xp 机器 :( 是的,我们提供了很多图像,除了使用 css sprites 之外,我们还想提供来自子域的静态内容。原因?您的浏览器只能与 DNS/ 建立 2-4 个活动连接服务器(防止 DoS 攻击)。因此从另一个 dns/子域提供内容肯定会有所帮助
    • IIS7 在 Windows XP 上运行良好。它不允许开箱即用的多个站点(除非这从 6 个更改为 7 个?),但有一些方法可以解决这个问题。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多