有时,我们需要将/或~/作为后缀,以便引用根
<script type="text/javascript" src="/scripts/jquery-1.5.1.min.js"></script>
<link href="~/Styles/MasterPage.css" rel="stylesheet" type="text/css" />这是我从Phill那里知道的
除非您的控件/元素上有runat属性,否则~/无效。'/‘本身指定浏览器从根目录进行查找,因此如果您从www.mysite.com/product/view.aspx链接到'/ css /main.css’,它将在www.mysite.com/css/main.css中查找css文件。当你将'~/‘与runat-server一起使用时,它将在运行时计算出目录的路径,因此在使用'~/css/main.css’的同一示例中,呈现的url将类似于'../css/main.css‘,因为它需要在找到目录'css’之前将目录放回1。(希望这是有意义的)- Phill How to include jquery in masterpage header without path problems?
但正如我所尝试的那样,即使我使用/ firefox,也仍然引用../../而不是静态路径。此外,我也不清楚如何正确使用它,在哪种情况下使用哪一种。
发布于 2011-05-23 14:49:39
~/指的是虚拟目录应用程序根目录,其中"/“指的是站点根目录,例如,如果您在http://www.example.com/中有站点根目录,并且http://www.example.com/foo中的文件夹"foo”配置为虚拟目录application in IIS,则http://www.example.com/foo/foo.aspx中的页面会将~/解析为相对于虚拟目录应用程序根目录的~/,但"/“仍将解析为站点根目录,即http://www.example.com/
发布于 2011-05-23 14:50:09
相对/开头的URL会备份到主机名的根目录。
相对URL中的前缀~/只能由ASP.NET进程解释,这就是它只适用于runat=server的原因。它在输出时被转换为引用ASP.NET应用程序的根地址。很多时候,这与主机名的根目录相同,但如果运行代码的ASP.NET应用程序是IIS中的虚拟目录而不是它自己的站点,则会有所不同。
如果只需要删除一个目录级别,则可以使用"../“作为前缀,而不是"/”或"~/“。
https://stackoverflow.com/questions/6093609
复制相似问题