在文件路径中使用 ~/ 是否解析为当前文件夹或网站的根目录?
我有这样的文件结构:
\
->Folder
-->Page1.Aspx
->App_Themes
-->Theme1
--->Images
--->StyleSheet.css
->Includes
-->Footer.htm
Default.aspx
Default.master
我正在将我的default.master 页面用于Page1.aspx 和default.aspx。母版页使用<!-- #include file="includes/Footer.htm" -->
。然后在我的 Footer.html 中,我使用图像路径,例如:〜/App_Themes/Theme1/Images/Image1.png”。
该图像将在default.aspx 中正确显示,但在Page1.aspx 中找不到。我认为 ~/ 在文件路径中使用时意味着网站的根目录?
EDIT:
我错了,它在 default.aspx 中也不起作用。有效的路径是:/App_Themes/Theme1/Images/Image1.png。
它解析为当前 Web 应用程序的根目录,该根目录可能是也可能不是整个网站的根目录。
要了解差异,请参阅本文 http://learn.iis.net/page.aspx/150/understanding-sites-applications-and-virtual-directories-on-iis/.
一般来说,当您在 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/
and
分别
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)