5

配置:

蒸气 4 | 更新的 beta 版本和软件包 | macOS Catalina v.10.15.3 | XCode 11.4 测试版 2 | 引导 CDN 4.4.1

我无法切换导航栏按钮。我不确定这是否是 Leaf 中的错误。我以正确的顺序实现了 Bootstrap 和 CSS。尝试运行此代码。不要忘记将浏览器窗口的大小调整为移动设备或平板电脑视图以显示导航栏切换按钮。这是我的叶子代码:

// base.leaf

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

// index.leaf

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

在 Safari 的 Inspect 元素中,我的 html 文档以正确的顺序呈现。但是,我不知道为什么单击导航栏切换不起作用。

4

2 回答 2

3

据我记得使用 Vapor 4 叶渲染器有一个关于#. 它们总是被解释为叶子标签的开始。

最简单的解决方法是使用\: data-target="#navbarCollapse"becomedata-target="\#navbarCollapse"

于 2020-06-17T13:27:05.363 回答
0

我相信 Leaf 解析器中有一个错误,并且#indata-target="#navbarCollapse"被误解了。我解决它的方法是将元素的属性从to更改data-targetdata-target=".navbarCollapse"和修改。不是最好的解决方法,但在修改 Leaf 解析器之前它可以解决问题。classnavbarSupportedContent div<div class="collapse navbar-collapse" id="navbarSupportedContent"><div class="collapse navbar-collapse navbarSupportedContent" id="navbarSupportedContent">

于 2020-05-14T10:25:59.660 回答