【问题标题】:Bootstrap-vue doesn't load CSSBootstrap-vue 不加载 CSS
【发布时间】:2018-08-28 12:21:30
【问题描述】:

我正在使用 Bootstrap 4 编写一个 Vue.js 应用程序,尽管我遵循了文档但无法加载。

添加到 main.js

Vue.use(BootstrapVue);

添加到App.vue相关的css文件中:

@import '../../node_modules/bootstrap/dist/css/bootstrap.css';
@import '../../node_modules/bootstrap-vue/dist/bootstrap-vue.css';

这是模板:

<div class="main">
<div>

    <b-modal id="modal1" title="Something went wrong" v-if="!serverStatusOk">
        <p class="my-4">{{msg}}</p>
        <p class="my-4">{{statusCode}}</p>

    </b-modal>
</div>

<div>
    <b-tab title="Players" active>
        <br>Players data
    </b-tab>
    <b-tab title="Tournaments" active>
        <br>Tournament data
    </b-tab>
</div>

结果:没有呈现 css,但在 dist 目录的 css 文件中我看到了 Bootstrap 我错过了什么? vue-cli 3.0-beta 创建的项目

【问题讨论】:

  • 与 Vue 2.5 和 Bootstrap-Vue 2.0.0 相同。 CSS 文件确实可以解决,因为更改路径会在编译期间引发 Not Found 错误。没有样式生效。

标签: javascript css vue.js bootstrap-4 bootstrap-vue


【解决方案1】:

尝试使用 JavaScript 导入文件。

import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'

仔细检查后,您似乎缺少&lt;b-tabs&gt;
&lt;b-modal&gt; 也被 v-model 控制

<div class="main">
    <div>
        <b-modal id="modal1" title="Something went wrong" v-model="errorModal">
            <pre class="my-4">{{ msg }}</pre>
            <p class="my-4">{{ statusCode }}</p>
        </b-modal>
    </div>
    <!-- Make sure to wrap b-tab in b-tabs -->
    <b-tabs> 
        <b-tab title="Players" active>
                <br>Players data
        </b-tab>
        <b-tab title="Tournaments">
                <br>Tournament data
        </b-tab>
    </b-tabs>
</div>

这应该会修复标签的样式。

【讨论】:

  • 我应该导入组件吗?
  • 如果那是你的根组件,你会想要它在 App.vue 中
  • 还是没有运气。同样的结果
  • 你能分享更多你的代码吗?我可以看看 github 或codesandbox.io
  • 提交到 App.vue 的导入
【解决方案2】:

我遇到了同样的问题,但幸运的是我找到了原因:加载程序未加载:)

  1. 确保您在 package.json 中同时拥有 vue-style-loadercss-loader
  2. 然后在你的 webpack 配置中,你的 module.rules 应该有这个对象: { 测试:/\.css/, use: ['vue-style-loader', 'css-loader'] // 两者都需要! }
  3. App.vue&lt;script&gt; 部分下,您应该导入:
    导入“bootstrap/dist/css/bootstrap.min.css”;
    导入“bootstrap-vue/dist/bootstrap-vue.css”;

无需使用@ 或相对node_modules 路径或任何东西。

通过这些更改,它适用于 Vue 2.5 和 Bootstrap-Vue 2.0.0


更新:

此外,尽管感觉有点反直觉,但请确保您 use() Bootstrap-Vue 包ma​​in.js 中创建 new Vue() >。例如:

import Vue from 'vue';
import BootstrapVue from 'bootstrap-vue';
import App from './App';
import router from './router';

Vue.use(BootstrapVue);

new Vue({
  el: '#app',
  router,
  components: { App },
  render: h => h(App),
});

如果您以相反的顺序执行此操作,则只能部分起作用。例如,某些块元素不会应用样式。

import Vue from 'vue';
import BootstrapVue from 'bootstrap-vue';
import App from './App';
import router from './router';

new Vue({
  el: '#app',
  router,
  components: { App },
  render: h => h(App),
});

// Doing this after new Vue() will NOT work correctly:
Vue.use(BootstrapVue);

【讨论】:

  • 我做的和第一个例子完全一样,我使用 vscode 作为编辑器,但它清楚地说“BootstrapVue”已声明但无法读取??在浏览器控制台中出现错误 [显示/隐藏消息详细信息。] ReferenceError: BootstrapVue is not defined
  • @ARUNMadathil:听起来bootstrap-vue 包没有正确安装。您可以尝试再次运行npm install bootstrap-vue --save,并检查安装过程中是否出现错误。您应该在项目的 package.json 依赖项中获得一个条目。
【解决方案3】:

对于面临上述问题的新人。以上答案都不适合我。我的问题是安装的引导版本。 npm installled 最新版本 5.1.0 不适用于 bootstrap-vue。我不得不将引导程序降级为 4.5.3 (recommended version from website)

运行以下 npm install bootstrap@4.5.3 --save

【讨论】:

  • 感谢您指出这一点!没有想到这一点(经过近半小时的调试......)同时帮助一个(初级)朋友努力将 BootstrapVue 添加到他的项目中!
  • 谢谢,我在扯头发,为什么只有一些元素不是样式。谢谢!!!
【解决方案4】:

在我的例子中,我使用的是 vue-cli 4.3.1,我错误地使用了这个配置。

如果您删除此配置,则一切正常!

https://cli.vuejs.org/guide/css.html#css-modules

如果要删除文件名中的 .module,请在 vue.config.js 中将 css.requireModuleExtension 设置为 false:

// vue.config.js
module.exports = {
  css: {
    requireModuleExtension: false
  }
}

【讨论】:

    【解决方案5】:

    我必须对其他一些答案进行组合/变化。

    App.vue:

    import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'
    import Vue from 'vue'
    
    
    // Install BootstrapVue
    Vue.use(BootstrapVue)
    // Optionally install the BootstrapVue icon components plugin
    Vue.use(IconsPlugin)
    
    import 'bootstrap/dist/css/bootstrap.css'
    import 'bootstrap-vue/dist/bootstrap-vue.css'
    
    
    
    export default {
      name: 'App',
      components: {
      }
    }
    

    来源: https://forum.vuejs.org/t/ui-library-styles-not-loading-in-web-components/77858/2 https://bootstrap-vue.org/docs

    【讨论】:

      【解决方案6】:

      bootstrap-vue 需要特定版本的bootstrap 才能正常工作。以下是撰写本文时来自Bootstrap-vue doc 的建议。

      Vue.js v2.6 is required, v2.6.12 is recommended
      Bootstrap v4.3.1 is required, v4.5.3 is recommended
      Popper.js v1.16 is required for dropdowns (and components based on dropdown), tooltips, and popovers. v1.16.1 is recommended
      PortalVue v2.1 is required by Toasts, v2.1.7 is recommended
      jQuery is not required
      

      解决方案: 请使用yarn add bootstrap@4.5.3npm -i bootstrap@4.5.3版本安装

      【讨论】:

        【解决方案7】:

        解决方案:

        导入到 App.vue:

        '../../node_modules/bootstrap/dist/css/bootstrap.css';
        '../../node_modules/bootstrap-vue/dist/bootstrap-vue.css';
        

        【讨论】:

          猜你喜欢
          • 2017-08-10
          • 2019-10-10
          • 2021-08-25
          • 2021-05-13
          • 2020-08-02
          • 2021-04-23
          • 2021-07-05
          • 2023-03-15
          • 2020-06-19
          相关资源
          最近更新 更多