Bootstrap 4 移动页面加载时导航栏折叠 (Laravel/laravel-mix)

Bootstrap 4 Navbar Collapsed for Mobile on Page Load (Laravel/laravel-mix)

好吧,我现在不确定要转弯,因为这对我来说完全没有意义。

我正在使用最新版本的 Laravel 和 Laravel Mix,这可能相关也可能不相关。

我已经更新 Laravel 以使用最新的 Bootstrap 4 Alpha 并具有以下依赖项:

"axios": "^0.16.2",
"bootstrap": "^4.0.0-alpha.6",
"cross-env": "^5.0.1",
"jquery": "^3.1.1",
"laravel-mix": "^1.0",
"lodash": "^4.17.4",
"vue": "^2.1.10",
"tether": "^1.4.0",
"popper.js": "^1.11.0"

这里的所有内容都是正确的版本。

我更新了我的 bootstrap.js 以包含正确的 bootstrap 模块和新需要的模块:

try {
    window.$ = window.jQuery = require('jquery');

    window.Tether = require('tether');
    window.Popper  = require('popper.js').default;
    require('bootstrap');
} catch (e) {}

我还更正了 app.scss 中的 SCSS 路径:

@import "node_modules/bootstrap/scss/bootstrap"; 

现在的问题是,当我在 运行 npm run dev 之后加载应用程序时,导航栏折叠了...就像在移动设备上一样,但我正在台式机上进行测试。

现在它变得更奇怪了,因为如果我从 Bootstrap CDN 中包含 bootstrap.min.css,那么它就可以正常工作。

虽然我不想这样做,但显然我最终可能不得不这样做,因为我不知道问题出在哪里。

我尝试了各种方法,例如注释掉我所有的自定义 CSS、Javascript、多次重新安装 node_modules 等。我现在迷路了。

编辑:我也试过在使用 app.css 文件时使用默认的 Bootstrap 导航栏,但它仍然不起作用。同样,如果我改用 CDN,工作正常。

@Jake,我猜你正在获取 bootstrap4.0.0-beta 并尝试使用与 bootstrap4.0.0-alpha.6.

相关的标记和 类

如果您卸载 bootstrap 和 运行 npm install bootstrap@4.0.0-alpha.6--save --save-exact,您的代码应该可以工作。

您可以将此代码用于您当前项目中的导航栏,看看它是否正常工作。

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</a>
  <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">
      <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="#">Disabled</a>
      </li>
    </ul>
    <form class="form-inline my-2 my-lg-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>