ASP.NET内部目录虚拟路径根目录

时间:2011-01-25 15:13:13

标签: asp.net configuration web-config virtual-directory

我有两个名为MainWeb和Reports的独立Web应用程序。我想以这种方式部署它们:MainWeb会有一个虚拟应用程序,例如指向 c:\ inetpub \ www \ mainweb

报告应用程序我想部署在主网站的子目录中,以便它位于 c:\ inetpub \ www \ mainweb \ reports

因此,我可以结合逻辑耦合的两个,但我希望将它们放在单独的项目中以便于操作。

问题是,在我的Reports项目中,我使用像~/Style/Whatever.css这样的构造在运行独立的Reports应用程序时工作正常,但在主Web中用作子目录时,它解析为 http:// localhost / Style /Whatever.css 虽然我需要它来解析 http:// localhost / reports /Style/Whatever.css

所以问题是,是否有可能处理这种情况,也许某种方式来修改嵌套web.config中~的行为?

3 个答案:

答案 0 :(得分:1)

不是真正的webby家伙,但报告中真实文件夹的快捷方式怎么样?

答案 1 :(得分:0)

嗯,我有类似的情况,我不确定你的问题是什么,VirtualPathUtility和服务器控制解析〜当前的web应用程序root。

但也许您可以将Virtual Path放在Reports应用程序目录的Properties / Web部分中,以获取localhost picture here

答案 2 :(得分:0)

我之前有3种不同的解决方法:

  1. 将您的样式引用从“报告”应用程序移动到“MainWeb”应用程序。这样你的“〜”url引用仍然可以工作。如果您不想移动实际文件,可以使用另一个虚拟目录链接根目录下的资源文件夹。
  2. 创建一个名为“ApplicationPath”的静态助手属性,该属性将返回“〜/”或“〜/ Reports”,具体取决于托管位置。然后,您可以在构建HTML时使用此属性为您的资源返回正确的URL。
  3. 使用嵌入资源。使用嵌入式资源,会自动为您生成URL,因此您无需担心路径。