簡體   English   中英

服務器端 Swift:導航欄切換在 Vapor 4 Leaf + Bootstrap 中不起作用

[英]Server Side Swift: Navbar Toggle not working in Vapor 4 Leaf + Bootstrap

配置:

蒸氣 4 | 更新測試版和軟件包 | macOS Catalina v.10.15.3 | XCode 11.4 測試版 2 | 引導 CDN 4.4.1

我無法切換導航欄按鈕。 我不確定這是否是 Leaf 中的錯誤。 我已經按照正確的順序實現了 Bootstrap 和 CSS。 嘗試運行此代碼。 不要忘記將瀏覽器窗口的大小調整為移動或平板電腦視圖以顯示導航欄切換按鈕。 這是我的葉子代碼:

// 基.葉

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8"/>
        <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0"/>
        <meta name="apple-mobile-web-app-capable" content="yes" />
    <!--    <link rel="stylesheet" href="/styles/bootstrap.min.css"/>-->
        <link rel="stylesheet" href="/fonts/fa/css/all.min.css"/>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
        <link rel="stylesheet" href="/styles/main.css"/>
        <link rel="stylesheet" href="/styles/header.css"/>
        <link rel="stylesheet" href="/styles/footer.css"/>
        <title>#(metaContent.title)</title>
        <meta name="description" content="#(metaContent.description)"/>
    </head>
    <body>
        <header>
            <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
              <a class="navbar-brand" href="#">Carousel</a>
              <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
              </button>
              <div class="collapse navbar-collapse" id="navbarCollapse">
                <ul class="navbar-nav mr-auto">
                  <li class="nav-item active">
                    <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link" href="#">Link</a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
                  </li>
                </ul>
                <form class="form-inline mt-2 mt-md-0">
                  <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
                  <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
                </form>
              </div>
            </nav>    
        </header>

        <main>
            #import("main")
        </main>

        <footer id="myFooter">
            <div class="bg-secondary" style="height:3px;">
            </div>
            <div class="footer-copyright footer-brand">
                <h6 class="mt-2 text-light">© 2020 Company. All Rights Reserved.</h6>
            </div>
        </footer>

       <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    </body>
</html>

// 索引.葉

#extend("base"):
    #export("main"):
    <div class="container mt-3">
        <h1>#(metaContent.title)</h1>
        <p>#(body.content)</p>
     </div>
    #endexport
#endextend

在 Safari 的 Inspect 元素中,我的 html 文檔以正確的順序呈現。 但是,我不知道為什么點擊導航欄切換不起作用。

據我記得使用 Vapor 4 葉渲染器有一個關於#的錯誤。 它們總是被解釋為葉標簽的開始。

最簡單的解決方法是用\\轉義它們: data-target="#navbarCollapse" become data-target="\\#navbarCollapse"

我相信這是在葉解析器的錯誤,並#data-target="#navbarCollapse"被曲解。 我解決它的方法是將data-target更改為data-target=".navbarCollapse"並將navbarSupportedContent div元素的class屬性從<div class="collapse navbar-collapse" id="navbarSupportedContent"><div class="collapse navbar-collapse navbarSupportedContent" id="navbarSupportedContent"> 不是最好的解決方法,但在修改 Leaf 解析器之前它會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM