服务器端Swift:导航栏切换在Vapor 4 Leaf+;独自创立

服务器端Swift:导航栏切换在Vapor 4 Leaf+;独自创立,swift,twitter-bootstrap,vapor,server-side-swift,leaf,Swift,Twitter Bootstrap,Vapor,Server Side Swift,Leaf,配置: Vapor 4 |更新测试版和软件包| macOS Catalina v.10.15.3 | XCode 11.4测试版2 |引导CDN 4.4.1 我无法切换导航栏按钮。我不确定这是不是叶子上的虫子。我已经按照正确的顺序实现了引导和CSS。请尝试运行此代码。不要忘记将浏览器窗口调整为移动或平板电脑视图,以便显示导航栏切换按钮。 这是我的叶代码: //基叶 #(元内容标题) 搜寻 #进口(“主要”) ©2020公司。版权所有。 //索引叶 扩展(“基”): #出口(“

配置:

Vapor 4 |更新测试版和软件包| macOS Catalina v.10.15.3 | XCode 11.4测试版2 |引导CDN 4.4.1

我无法切换导航栏按钮。我不确定这是不是叶子上的虫子。我已经按照正确的顺序实现了引导和CSS。请尝试运行此代码。不要忘记将浏览器窗口调整为移动或平板电脑视图,以便显示导航栏切换按钮。 这是我的叶代码:

//基叶


#(元内容标题)
搜寻 #进口(“主要”) ©2020公司。版权所有。
//索引叶

扩展(“基”): #出口(“主要”): #(元内容标题) #(正文.内容)

#电子出口 #endextend
在Safari的Inspect元素中,我的html文档以正确的顺序呈现。但是,我不知道为什么单击navbar切换不起作用。

我认为Leaf解析器中有一个bug,
数据目标=“#navbarCollapse”
中的
被误解了。我解决它的方法是将
数据目标
更改为
数据目标=“.navbarCollapse”
,并将
navbarSupportedContent
div
元素的
属性从
修改为
。这不是最好的解决方法,但在修改叶解析程序之前,它会起作用。

据我所知,使用Vapor 4叶渲染器时,有一个关于
#
的错误。它们总是被解释为叶标记的开始

最简单的解决方法是使用
\
数据目标=“\35; navbarCollapse”
变成
数据目标=“\\35; navbarCollapse”

<!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