ASP中的“〜/”解析了什么:当前文件夹或网站的根目录?

时间:2012-07-04 18:58:36

标签: asp.net

在文件路径中使用〜/解析到当前文件夹或网站的根目录吗?

我有一个文件结构:

\
->Folder
-->Page1.Aspx

->App_Themes
-->Theme1
--->Images
--->StyleSheet.css

->Includes
-->Footer.htm

Default.aspx
Default.master

我正在使用Page1.aspx和default.aspx的default.master页面。母版页使用<!-- #include file="includes/Footer.htm" -->。然后在我的Footer.html中,我使用图像路径,例如:〜/ App_Themes / Theme1 / Images / Image1.png“。

图像将在default.aspx中正确显示,但在Page1.aspx中找不到。我认为〜/表示在文件路径中使用时网站的根目录?

编辑:

我错了,它也无法在defaut.aspx中运行。正在运行的路径是:/App_Themes/Theme1/Images/Image1.png。

1 个答案:

答案 0 :(得分:5)

它解析为当前Web应用程序的根目录,可能是也可能不是整个网站的根目录。

要了解其中的差异,请参阅this article

作为一般规则,当您在Visual Studio中创建“网站”或“Web应用程序”时,您实际上是在IIS中创建“Web应用程序”。

为了进一步混淆水域,从概念上讲,网站的根本就是一个IIS“应用程序”,因此您可以将Visual Studio网站/ Web应用程序发布到您网站的根目录。在这种情况下,〜/将引用站点的根目录。

但是,如果您有多个应用程序都在一个站点中运行,那么在每个站点中〜/将引用该应用程序的根目录。

例如,假设MySite.com有不同的应用程序

  • mySite.Com - Visual Studio中的独特应用,具有一般网站内容。
  • mySite.Com / shop有购物车。这是Visual Studio中的一个独特的应用程序,以及一个独特的IIS应用程序。
  • MySite.Com/Support包含一个独立的,独特的客户支持应用程序。提交票证,与现场运营商聊天等。

在上述所有内容中,mysite.com都是该网站。但是/ *表示应用程序。 〜/将引用

  • mySite.Com/
  • mySite.Com/shop /

  • MySite.Com/Support /
分别