繁体   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