在Vuejs模板中使用时Bootstrap图标不会出现在前端

BAT*_*008 21 html css twitter-bootstrap bootstrap-4 vuejs2

我正在尝试使用 来构建 Web 应用程序,Vue.JS并且在我的应用程序中,我正在尝试使用[Bootstrap Icons][1]. 但由于某种原因,即使添加图标后,它们也不会出现在屏幕上。

我执行了以下步骤:

  1. 安装Bootstrap Icons到应用程序中:
npm install bootstrap-icons
Run Code Online (Sandbox Code Playgroud)

安装后我可以在我的package.json文件中看到它。

  1. 将其添加到Main.js文件中:
import 'bootstrap-icons/font/bootstrap-icons';
Run Code Online (Sandbox Code Playgroud)
  1. 在组件内将其添加到所需的按钮:
<template>
  <button type="button" class="btn btn-secondary copy" @click="copyXML()">Copy<i class="bi bi-clipboard"></i></button>
</template>
Run Code Online (Sandbox Code Playgroud)

这对我的按钮文本没有任何影响。我仍然只能看到Copy按钮上的文字。

根据文档,还有另一种添加图标的方法。当我添加SVG然后我得到图标:

 <button type="button" class="btn btn-secondary copy" @click="copyXML()">Copy<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-archive" viewBox="0 0 16 16">
  <path d="M0 2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1v7.5a2.5 2.5 0 0 1-2.5 2.5h-9A2.5 2.5 0 0 1 1 12.5V5a1 1 0 0 1-1-1V2zm2 3v7.5A1.5 1.5 0 0 0 3.5 14h9a1.5 1.5 0 0 0 1.5-1.5V5H2zm13-3H1v2h14V2zM5 7.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5z"/>
</svg></button>
Run Code Online (Sandbox Code Playgroud)

我不明白为什么 onlySVG有效,难道不能只添加<i class="bi bi-clipboard"></i>并获取图标吗?

这可能是一个愚蠢的问题,但我正在寻找 Vuejs 应用程序中图标的一些解释和用法。

Ben*_*lls 49

将这一行添加到 main.js 似乎对我有用:

import 'bootstrap-icons/font/bootstrap-icons.css'
Run Code Online (Sandbox Code Playgroud)

重要的部分似乎是最后的 .css 。如果没有它,它将导入同名的 .js 文件。

现在 i 标签正在工作:

<i class="bi bi-clipboard"></i>
Run Code Online (Sandbox Code Playgroud)


BAT*_*008 5

最后,我找到了解决方法。大多数npm软件包都不支持,Vuejs 3.x因为它是最近发布的。

解决方法是不将其安装为应用程序npm library,而是将其直接js或作为包含CDN link到我们的应用程序中。

我将以下内容添加CDN到我的index.html并且对我有用:

    <!-- Bootstrap Icons Starts -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.3.0/font/bootstrap-icons.css">
    <!-- Bootstrap Icons Ends -->
Run Code Online (Sandbox Code Playgroud)