Asp.net 什么是~/&引用;在ASP中解析为:当前文件夹还是网站的根目录?

Asp.net 什么是~/&引用;在ASP中解析为:当前文件夹还是网站的根目录?,asp.net,Asp.net,在文件路径中使用~/是否解析为当前文件夹或网站的根目录 我的文件结构如下: \ ->Folder -->Page1.Aspx ->App_Themes -->Theme1 --->Images --->StyleSheet.css ->Includes -->Footer.htm Default.aspx Default.master 我正在为Page1.aspx和default.aspx使用default.master页。母版页使用。然后

在文件路径中使用~/是否解析为当前文件夹或网站的根目录

我的文件结构如下:

\
->Folder
-->Page1.Aspx

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

->Includes
-->Footer.htm

Default.aspx
Default.master
我正在为Page1.aspx和default.aspx使用default.master页。母版页使用
。然后在myfooter.html中,我使用图像路径,例如:~/App\u Themes/Theme1/images/Image1.png”

该图像将在default.aspx中正确显示,但在Page1.aspx中找不到。我想~/在文件路径中使用时是指网站的根目录

编辑:


我错了,它在defaut.aspx中也不起作用。起作用的路径是:/App_Themes/Theme1/Images/Image1.png。

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

要了解差异,请参阅

一般来说,在VisualStudio中创建“网站”或“web应用程序”时,实际上是在IIS中创建“web应用程序”

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

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

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

  • mySite.Com-VisualStudio中的独特应用程序,具有一般的网站内容
  • mySite.Com/shop有一个购物车。这是Visual Studio中一个独特的应用程序,也是一个独特的IIS应用程序
  • MySite.Com/Support包含一个独立、独特的客户支持应用程序。提交票证、与现场运营商聊天等
在以上所有内容中,mysite.com是网站。但/*表示应用程序。~/将指

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

  • MySite.Com/Support/

分别

我建议不要使用服务器端包含。这是旧的ASP垃圾,不应该在ASP.NET中使用。应该使用什么来代替?自定义ascx控件?ascx控件,母版页…任何东西都比使用包含好。母版页是所有页面共享内容的标准.NET方式。ASXC控件是在你的页面内容中包含一些内容。听起来不错,我从来不知道“包含”这么糟糕。我只是想,既然我只在母版页中包含html片段,那就没关系了。谢谢,我会将“包含”切换到ASCX控件。@Mausimo:正如所说的,使用UserControls(ASCX)和/或母版页。大多数网站甚至关闭了SSI。感谢您的链接和回答。它帮助了很多!