HREF正在引用自身
本文关键字:引用 HREF | 更新日期: 2023-09-27 18:19:00
我正在使用。net 4.5 c#/ASP.NET构建一个应用程序是VS Pro 2013。我也使用Bootstrap.min.js和JQuery 2.1.4.in.js。
我为一组网页创建了一个文件夹结构。在根目录下,它看起来像这样:
Root Dir/文件夹/文件夹/文件夹/default . aspx
我还在页面上有一个导航栏,其中有下拉菜单。在下拉菜单中,我已经将我的HREF添加到其他页面中,并围绕我的网页文件夹结构。
我在下拉菜单中有两个引用网页的链接,正如你所期望的使用HREF。
导航条的代码如下:
<li class="dropdown" >
<a class="dropdown-toggle" data-toggle="dropdown" style="cursor:pointer">Sites
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="#">View Site Dashboard</a></li>
<li><a href="#">View Site Reports</a></li>
<li class="divider"></li>
<li><a href="#">Set/Edit Site Targets</a></li>
<li class="divider"></li>
<li><a href="~/EMS/Sites/EditSite/Default.aspx">Edit Site Details</a></li>
<li><a href="~/EMS/Sites/Addsite/Default.aspx">Add Another Site</a></li>
</ul>
</li>
只有两个活动链接,我把其他的都去掉了,因为它们也在做同样的事情。
当我运行应用程序时,当我将鼠标悬停在下拉菜单上的链接上时,我看到的是localhost:port#/EMS/Sites/AddSite/~EMS/Sites/AddSite/Default。当它实际上应该是localhost:port#/EMS/Sites/AddSite/Default.aspx
就好像它取了aspx文件的当前位置,然后在它的末尾添加了HREF链接。因为这个位置不存在,所以是404。
我试过改变路径从相对到绝对和混合的东西,但它不是一个快乐的兔子。
我也在网上试过。
配置和路由配置…有什么想法吗,我以前从来没有遇到过这个!
任何以协议(例如,http://
)或/
以外的任何内容开头的链接都将被视为相对链接,即相对于当前页面。如果你想让你的链接相对于站点根,使用/~/...
。
也就是说,根据你对你想做的事情的描述,我不确定你为什么要使用~
;应该是#
可以说,感谢Ed Cottrell把我带到了正确的道路上。
由于我的文件夹中嵌套的数量,我不能使用相对路径,有那么多嵌套。由于应用程序可能移动,它仍然在pre prod,我不想改变所有的href时,它去prod或被移动,因此文件夹。所以我把所有的内容都向上移动了一个层次,而不是在网页所在的文件夹中嵌套,所以网页都在自己的文件夹中。这意味着每个页面都有自己的文件夹,这意味着我不必为应用程序的这一部分更改内部HREF。
这允许我使用"../Folder/"。我还将IIS中的默认页面设置为default。所以我只需要引用页面所在的文件夹。
在我需要走出应用程序的这一部分的地方,我将不得不提供一个完整的参考协议(http://somesite/someotherfolder等)。