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。

我试过改变路径从相对到绝对和混合的东西,但它不是一个快乐的兔子。

我也在网上试过。

配置和路由配置…

有什么想法吗,我以前从来没有遇到过这个!

HREF正在引用自身

任何以协议(例如,http://)或/以外的任何内容开头的链接都将被视为相对链接,即相对于当前页面。如果你想让你的链接相对于站点根,使用/~/...

也就是说,根据你对你想做的事情的描述,我不确定你为什么要使用~;应该是#

可以说,感谢Ed Cottrell把我带到了正确的道路上。

由于我的文件夹中嵌套的数量,我不能使用相对路径,有那么多嵌套。由于应用程序可能移动,它仍然在pre prod,我不想改变所有的href时,它去prod或被移动,因此文件夹。所以我把所有的内容都向上移动了一个层次,而不是在网页所在的文件夹中嵌套,所以网页都在自己的文件夹中。这意味着每个页面都有自己的文件夹,这意味着我不必为应用程序的这一部分更改内部HREF。

这允许我使用"../Folder/"。我还将IIS中的默认页面设置为default。所以我只需要引用页面所在的文件夹。

在我需要走出应用程序的这一部分的地方,我将不得不提供一个完整的参考协议(http://somesite/someotherfolder等)。