【问题标题】:IIS7 & VS2010 Solution setup for multiple websites with shared assets (JS, CSS, images, etc.)IIS7 & VS2010 多个网站共享资源(JS、CSS、图像等)的解决方案设置
【发布时间】:2011-05-02 19:35:39
【问题描述】:

我正在重新设计我们所有面向公众的网站。这些站点将共享大部分资产,例如 JS、图像、CSS、Web 服务等,但会在不同的域/子域下访问。

我不可能是唯一一个希望与共同但独立且独特的网站共享所有这些资源的人。解决这个问题的正确方法是什么?

【问题讨论】:

    标签: asp.net visual-studio-2010 iis-7 web


    【解决方案1】:

    最好的方法是拥有一个诸如“static.mydomain.com”之类的站点来托管您的 javacript、图像和 css。您通常会将此站点设置为进行一些激进的缓存。

    对于网络服务,有一个名为“services.mydomain.com”的网站,它托管您的所有网络服务。

    所有其他网站都转到各自的域。

    主要网站将通过 <img src='http://static.mydomain.com/images/myimage.jpg' /> 之类的方式引用他们的所有工件

    这里唯一真正的复杂性在于您的自动化构建。但即使这样也不是太难,具体取决于您的构建服务器。

    是的,这是一种非常常见的方法。此外,通过分离这些静态工件,如果您愿意,以后可以更轻松地将它们转移到 CDN。

    【讨论】:

    • 我喜欢这个。这个怎么样:一个人如何根据环境指向不同的 URL(static.mydomain.com、.dev、.qa)而不做一堆代码隐藏工作或使标记的实际编码复杂化?
    • @Steve Costello:配置文件.. 您可以使用配置转换,以便根据您正在执行的构建自动换出设置
    • 哦,我明白了。但我的意思是,如果我指的是标记中的图像。我在 DEV 中的 HTML 应该指向 static.domain.DEV/images (因为图像尚未投入生产),但在生产中,相同的 src 将指向 static.domain.COM/images - 因为这段代码在标记,而不是依赖于服务器的代码,自动使这些 URL 指向正确位置的最佳方法是什么?
    • @Steve:我可以想到几种方法来做到这一点。第一个是对本地主机文件的简单修改,将常规“static.domain.com”重定向到测试服务器。第二个涉及一个 HttpModule,它会拦截指向“static.domain.com”的 url,并在打开时将它们更改为“static.domain.DEV”。类似于 URL 重写。
    • @Steve:查看以下内容,了解重写整个 url 的简单方法。 weblogs.asp.net/owscott/archive/2010/01/26/…
    【解决方案2】:

    如果您希望所有文件都属于同一个解决方案,那么它与Sharinging Master Pages across Projects 的问题非常相似

    查看有关该问题的链接和以下链接:

    如果您只关心共享静态文件而不是动态文件,那么我建议您遵循 Chris Lively 的建议并将它们托管在单独的域中。自定义构建过程以在必要时复制文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多