【发布时间】:2012-05-16 07:52:08
【问题描述】:
我的目标是跨多个网站共享图像、css、js 等,这些网站都托管在 IIS 的同一父虚拟目录下。当然,我可以对图像路径进行硬编码,但我希望 .NET 有一种方法可以使用 IIS 配置智能地解析 URL。
这是我的文件/虚拟目录结构:
Parent Site (Virtual Directory) default.aspx mypage.aspx otherpage.aspx images - logo.jpg css - site.css Subsite1 (Virtual Directory) - default.aspx - products.aspx Subsite2 (Virtual Directory) - default.aspx - products.aspx - miscellaneous.aspx
Parent Site、Subsite1 和 Subsite2 都是分别为 http://parentsite.com、http://subsite1.com 和 http://subsite2.com 设置的虚拟目录。我想在这些网站上共享图片、js、css等。
.NET 中是否有一种方法可以在从其中一个子站点(例如,http://subsite.com/default.aspx)调用时将 ~/images/logo.jpg 解析为 http://parentsite.com/images/logo.jpg?
【问题讨论】:
-
.NET 如何知道“subsite.com”和“parentsite.com”有任何关联?它唯一可以关联的是当前的 URI 请求。也许只是在链接到父级共享文件夹的子级上创建虚拟目录,以便它们都可以引用 /assets/ ?
-
在根目录下创建一个文件夹,命名为assets。将所有常见的共享资产放在那里。在每个“虚拟目录”中,为引用根资产文件夹的资产创建一个新的虚拟目录。然后 ~/assets 将始终成为根站点的资产文件夹。 parentsite.com/assets , childsite.com/assets 是一回事
-
恕我直言,虽然这可以工作,但 CDN 类型的设置有更多好处。 1)缓存! 2)more connections at the same time.
-
@Eonasdan 虽然 CDN 可以工作,但要求 Justin 可以在所有子站点上共享同一个域 (cdn.parentsite.com) 或为每个域 (cdn) 设置单独的 CDN 站点.everysite.com)。两种解决方案都行得通,只是归结为最适合他需要的解决方案。
-
@NickBork 是的,是的。我想我已经从他的问题的措辞中假设了这一点。请带上你的cmets并让他们回答,以便他可以选择它,我可以投票赞成:)(或者我可以将它添加到我的以使其更完整)
标签: c# asp.net url iis-6 virtual-directory