导航栏链接到一个子文件夹 [英] Navbar links to a subfolder

查看:74
本文介绍了导航栏链接到一个子文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每当我有一个链接到一个子文件夹中的页面时,它会冻结子文件夹中的导航栏,以便浏览器链接保留在子文件夹中,因此无法找到。在使用母版页的Visual Studio Express中。母版页如下所示:

 < link href =Content / bootstrap.css =stylesheet/> 
< asp:ContentPlaceHolder ID =StyleSectionrunat =server>
< / asp:ContentPlaceHolder>
< / head>
< body>
< form id =form1runat =server>
<! - 静态导航栏 - >
< nav class =navbar navbar-default navbar-static-top>
< div class =container>
< div class =navbar-header>
< button type =buttonclass =navbar-toggle collapseddata-toggle =collapsedata-target =#navbararia-expanded =falsearia-controls =navbar> ;
< span class =sr-only>切换导航< / span>
< span class =icon-bar>< / span>
< span class =icon-bar>< / span>
< span class =icon-bar>< / span>
< / button>
< a class =navbar-brandhref =#>项目名称< / a>
< / div>
< div id =navbarclass =navbar-collapse collapse>
< ul class =nav navbar-nav>
< li class =active>< a href =index.aspx>主页< / a>< / li>
< li>< a href =子文件夹/ About.aspx>关于< / a>< / li>
< li>< a href =子文件夹/ contact.aspx>联系人< / a>< / li>
< li class =dropdown>
< a href =#class =dropdown-toggledata-toggle =dropdownrole =buttonaria-expanded =false>下拉式< span class =caret> ;< /跨度>< / A>
< ul class =dropdown-menurole =menu>
< li>< a href =action.aspx>动作< / a>< / li>
< li>< a href =action2.aspx>动作2< / a>< / li>
< li>< a href =子文件夹/ SomethingElse.aspx>其他< / a>< / li>
< / ul>
< / li>
< / ul>
< / div>
<! - /。nav-collapse - >
< / div>
< / nav>
< asp:ContentPlaceHolder ID =ContentSectionrunat =server>< / asp:ContentPlaceHolder>
< asp:ContentPlaceHolder ID =scriptsectionrunat =server>
< / asp:ContentPlaceHolder>

< / form>
< script src =Scripts / jquery-2.1.3.js>< / script>
< script src =Scripts / bootstrap.js>< / script>

导航栏加载正常,但点击后说联系人,下拉菜单不会下拉,也不会来自导航栏工作的其他链接。它不想离开子文件夹。

  http:// localhost:49679 / Subfolder / contact.aspx# 

无论我是从VS的IIS Express还是发布到本地服务器后:

  http://192.168.1.67/navtest/Subfolder/contact.aspx# 

我已经成功对网站的一部分进行了重新编码,但必须将所有.aspx页面放在文件夹的根目录中。我不能在网站的其他部分做到这一点。该html来自VS中的测试项目。我已经尝试添加〜s并在整个地方改变路径,但似乎没有任何工作。 解决方案

在查看子页面时,您的CSS文件和JS文件将不正确。



href =Content / bootstrap.css - 您的浏览器将尝试从 > Content 文件夹中加载 bootstrap.css >当前页面的相同级别。这将适用于你的根页面,但不适用于子页面。



href =/ Content / bootstrap.css添加领先的 / 将从根文件夹开始,因此应该在整个网站的任何页面上工作,而不管当前页面的级别如何。

b
$ b

您会发现,由于相同的原因,您的链接也不起作用。


Whenever I have a link to a page in a sub-folder it freezes the Navbar in the sub-folder so that the browser links stay in the sub-folder and cant' be found. In Visual Studio Express using Master pages. Master page looks like this:

  <link href="Content/bootstrap.css" rel="stylesheet" />
     <asp:ContentPlaceHolder ID="StyleSection" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <!-- Static navbar -->
    <nav class="navbar navbar-default navbar-static-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#">Project name</a>
            </div>
            <div id="navbar" class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li class="active"><a href="index.aspx">Home</a></li>
                    <li><a href="Subfolder/About.aspx">About</a></li>
                    <li><a href="Subfolder/contact.aspx">Contact</a></li>
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Dropdown <span class="caret"></span></a>
                        <ul class="dropdown-menu" role="menu">
                            <li><a href="action.aspx">Action</a></li>
                            <li><a href="action2.aspx">Action 2</a></li>
                            <li><a href="Subfolder/SomethingElse.aspx">Something else</a></li>
                        </ul>
                    </li>
                </ul>
             </div>
            <!--/.nav-collapse -->
        </div>
    </nav>
    <asp:ContentPlaceHolder ID="ContentSection" runat="server"></asp:ContentPlaceHolder>
    <asp:ContentPlaceHolder ID="scriptsection" runat="server">
    </asp:ContentPlaceHolder>

    </form>
    <script src="Scripts/jquery-2.1.3.js"></script>
    <script src="Scripts/bootstrap.js"></script>

Navbar loads fine but after clicking, say "Contact," the Dropdown doesn't dropdown nor do any other links from the navbar work. It doesn't want to get out of the Subfolder.

http://localhost:49679/Subfolder/contact.aspx#

I doesn't matter whether I'm in IIS Express from VS or after publishing to my local server:

http://192.168.1.67/navtest/Subfolder/contact.aspx#

I've re-coded one section of my website successfully but I had to put all the .aspx pages in the root of the folder. I can't do that with the rest of the website. The html is from a test project in VS. I've tried adding "~"s and changed paths all over the place but nothing seems to work.

解决方案

The paths to your CSS fils and JS files will be incorrect when viewing a sub-page.

href="Content/bootstrap.css" - your browser will try to load bootstrap.css from a folder called Content that is at the same level as the current page. This will work for your root page but not for sub-pages.

href="/Content/bootstrap.css" adding a leading / will start at the root folder and so should work on any page throughout your site no matter what level the current page is found.

You will find that your links will also not work due to the same reason.

这篇关于导航栏链接到一个子文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆