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

Mau*_*imo 2 asp.net

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

我有一个文件结构:

\
->Folder
-->Page1.Aspx

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

->Includes
-->Footer.htm

Default.aspx
Default.master
Run Code Online (Sandbox Code Playgroud)

我正在使用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.

Dav*_*vid 5

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

要了解其中的差异,请参阅此文章.

作为一般规则,当您在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/

分别