【问题标题】:Why are my navbar links only working on the homepage?为什么我的导航栏链接只能在主页上使用?
【发布时间】:2021-03-26 23:53:45
【问题描述】:

由于某种原因,我的导航栏内容只能指向我网站主页上的正确页面。在其他页面上,如果我尝试通过导航栏导航到新页面,则会收到 404 错误。我使用 w3 school 的模板来创建酒吧。有人知道我做错了什么吗?

HTML:

<!-- Navbar (sit on top) -->
<div class="w3-top">
  <div class="w3-bar w3-white w3-wide w3-padding-small w3-card">
      <div id = homeID>
    <a href="index.php" class="w3-bar-item w3-button r-logo">Home</a>
    </div>
    <!-- Float links to the right. Hide them on small screens -->
    <div class="w3-right w3-hide-small">
    
    <div class="dropdown">
      <button class="dropbtn w3-bar-item w3-button r-font">Shop A</button>
      <div class="dropdown-content r-font">
        <a href="pages/a-clothing.php">Clothing</a>
        <a href="pages/a-makeup.php">Makeup</a>
        <a href="pages/a-skin+hair.php">Skin + Hair</a>
        <a href="pages/a-accessories.php">Accessories</a>
        <a href="pages/a-household.php">Homeware</a>
      </div>
    </div>
           
    <div class="dropdown">
      <button class="dropbtn w3-bar-item w3-button r-font">Shop B</button>
      <div class="dropdown-content r-font">
        <a href="pages/b-clothing.php">Clothing</a>
        <a href="pages/b-makeup.php">Makeup</a>
        <a href="pages/b-skin+hair.php">Skin + Hair</a>
        <a href="pages/b-accessories.php">Accessories</a>
        <a href="pages/b-household.php">Homeware</a>
      </div>
    </div>
    
    <div class="dropdown">
      <button class="dropbtn w3-bar-item w3-button r-font">Shop C</button>
      <div class="dropdown-content r-font">
        <a href="pages/c-clothing.php">Clothing</a>
        <a href="pages/c-makeup.php">Makeup</a>
        <a href="pages/c-skin+hair.php">Skin + Hair</a>
        <a href="pages/c-accessories.php">Accessories</a>
        <a href="pages/c-household.php">Homeware</a>
      </div>
    </div>
    
     <div class="dropdown">
      <button class="dropbtn w3-bar-item w3-button reddo-font">Shop D</button>
      <div class="dropdown-content r-font">
        <a href="pages/d-clothing.php">Clothing</a>
        <a href="pages/d-makeup.php">Makeup</a>
        <a href="pages/d-skin+hair.php">Skin + Hair</a>
        <a href="pages/d-accessories.php">Accessories</a>
        <a href="pages/d-household.php">Homeware</a>
      </div>
    </div>
    
      </div>
    </div>
  </div>

【问题讨论】:

    标签: html css uinavigationbar


    【解决方案1】:

    (更新 31/03/21)404 表示服务器无法从您提供的路径中找到文件。请将所有 pages/**.php 文件移动到 index.php 所在的主文件夹。然后在上面的当前代码中,删除所有 href 的所有前缀“pages/”。然后将编辑后的导航栏代码重新用于所有其他页面。

    <!-- Navbar (sit on top) -->
    <div class="w3-top">
      <div class="w3-bar w3-white w3-wide w3-padding-small w3-card">
          <div id = homeID>
        <a href="index.php" class="w3-bar-item w3-button r-logo">Home</a>
        </div>
        <!-- Float links to the right. Hide them on small screens -->
        <div class="w3-right w3-hide-small">
        
        <div class="dropdown">
          <button class="dropbtn w3-bar-item w3-button r-font">Shop A</button>
          <div class="dropdown-content r-font">
            <a href="a-clothing.php">Clothing</a>
            <a href="a-makeup.php">Makeup</a>
            <a href="a-skin+hair.php">Skin + Hair</a>
            <a href="a-accessories.php">Accessories</a>
            <a href="a-household.php">Homeware</a>
          </div>
        </div>
               
        <div class="dropdown">
          <button class="dropbtn w3-bar-item w3-button r-font">Shop B</button>
          <div class="dropdown-content r-font">
            <a href="b-clothing.php">Clothing</a>
            <a href="b-makeup.php">Makeup</a>
            <a href="b-skin+hair.php">Skin + Hair</a>
            <a href="b-accessories.php">Accessories</a>
            <a href="b-household.php">Homeware</a>
          </div>
        </div>
        
        <div class="dropdown">
          <button class="dropbtn w3-bar-item w3-button r-font">Shop C</button>
          <div class="dropdown-content r-font">
            <a href="c-clothing.php">Clothing</a>
            <a href="c-makeup.php">Makeup</a>
            <a href="c-skin+hair.php">Skin + Hair</a>
            <a href="c-accessories.php">Accessories</a>
            <a href="c-household.php">Homeware</a>
          </div>
        </div>
        
         <div class="dropdown">
          <button class="dropbtn w3-bar-item w3-button reddo-font">Shop D</button>
          <div class="dropdown-content r-font">
            <a href="d-clothing.php">Clothing</a>
            <a href="d-makeup.php">Makeup</a>
            <a href="d-skin+hair.php">Skin + Hair</a>
            <a href="d-accessories.php">Accessories</a>
            <a href="d-household.php">Homeware</a>
          </div>
        </div>
        
          </div>
        </div>
      </div>

    【讨论】:

    • 问题是所有这些链接都在我的主页上工作,当我在链接指向的各个页面上使用相同的导航栏代码时,它们就会停止工作。我想将栏添加到其他页面,这样我就可以在页面之间跳转而无需返回主页。将文件移动到索引文件夹所在的位置仍然有意义吗?
    • 嗨。如果您不确定,请进行备份。在这种情况下,最简单的解决方案是将所有 pages/**.php 文件移动到 index.php 所在的主文件夹。然后在上面的当前代码中,删除所有 href 的所有前缀“pages/”。然后将编辑后的导航栏代码重新用于所有其他页面。
    • 在这里我解释了为什么您当前的方式不适用于 1 个链接。所有其他链接的相同问题。假设我们在页面 pages/a-clothing.php 中,您单击链接“主页”,通过您的代码,位置是 href="index.php",即告诉服务器在同一文件夹中找到一个名为 index.php 的文件文件 pages/a-clothing.php 所在的位置。显然,文件夹“pages”的同一文件夹不包含文件 index.php。服务器因此返回 404 错误,原因是“我找不到 pages/index.php”。
    • 类似地。假设我们在页面 pages/a-clothing.php 中,您点击链接 Shop A 'Makeup'。通过您的代码,位置是 href="pages/a-makeup.php",即告诉服务器在子文件夹 pages/pages/a-makeup.php 中找到一个名为 a-makeup.php 的文件,相对于 pages/a-clothing .php 定位。服务器因此返回 404 错误,原因是“我找不到 pages/pages/a-makeup.php”。
    • 按照所列修复完成后,让我知道结果。享受:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 2015-01-23
    • 1970-01-01
    • 2022-08-17
    相关资源
    最近更新 更多