Bootstrap 4与5代码混用致导航栏Friends等链接不显示求助
问题解决步骤
1. 修复HTML结构错误
你的导航栏代码末尾多了一个冗余的</div>,这会破坏DOM结构,导致折叠内容无法正常渲染,先删除这个多余的闭合标签。
2. 统一Bootstrap版本类名
你混用了Bootstrap 4与Bootstrap 5的类名,这是导致链接不显示的核心原因之一,需根据你实际使用的版本统一类名:
适配Bootstrap 5的完整修正代码
<nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <%= link_to 'Friend App', root_path, class:"navbar-brand" %> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav me-auto"> <!-- Bootstrap 5用me-auto替代Bootstrap 4的mr-auto --> <li class="nav-item"> <%= link_to "About Us", home_about_path, class:"nav-link" %> </li> <li class="nav-item"> <%= link_to "Friends", friends_path, class:"nav-link" %> </li> </ul> <form class="d-flex" role="search"> <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success" type="submit">Search</button> </form> </div> </nav>
适配Bootstrap 4的完整修正代码
<nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <%= link_to 'Friend App', root_path, class:"navbar-brand" %> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mr-auto"> <!-- Bootstrap 4保留mr-auto --> <li class="nav-item"> <%= link_to "About Us", home_about_path, class:"nav-link" %> </li> <li class="nav-item"> <%= link_to "Friends", friends_path, class:"nav-link" %> </li> </ul> <form class="form-inline my-2 my-lg-0" role="search"> <!-- Bootstrap 4用form-inline替代d-flex --> <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search"> <!-- Bootstrap 4用mr-sm-2替代me-2 --> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> </form> </div> </nav>
3. 验证资源引入
确保页面引入的Bootstrap资源与你使用的版本完全一致:
- 若用Bootstrap 5,引入:
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
- 若用Bootstrap 4,引入:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js"></script>
完成以上修改后,导航栏的Friends和About Us链接即可正常显示。
内容的提问来源于stack exchange,提问作者Ivan Ordonez
相关产品推荐
相关产品推荐

