【发布时间】:2012-07-05 03:12:12
【问题描述】:
在文件路径中使用 ~/ 会解析到当前文件夹或网站的根目录吗?
我有这样的文件结构:
\
->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 中找不到。我以为 ~/ 在文件路径中使用时表示网站的根目录?
编辑:
我错了,它在 defaut.aspx 中也不起作用。有效的路径是:/App_Themes/Theme1/Images/Image1.png。
【问题讨论】:
-
我建议不要使用服务器端包含。那是旧的 ASP 垃圾,不应该在 ASP.NET 中使用。
-
应该改用什么?自定义 ascx 控件?
-
ASCX 控件、母版页...任何东西都比使用包含更好。母版页是跨所有页面共享内容的标准 .NET 方式。 msdn.microsoft.com/en-us/library/wtxbf3hh.aspx ASXC 控件是在页面内容中包含位的方式。
-
听起来不错,我从来不知道#includes 这么糟糕。我只是想,因为我只是在我的母版页中#include html 段,所以没关系。谢谢,我会将我的#includes 切换到 ASCX 控件。
-
@Mausimo:如前所述,使用 UserControls (ASCX) 和/或母版页。大多数网站甚至会关闭 SSI。
标签: asp.net