Bootstrap 导航栏不呈现 SVG 图像

Bootstrap Nav Bar doesn't render SVG image

我使用了Bootstrap 5的导航栏组件代码,我想在导航栏中渲染一个robot.svg图像。但是为什么 robot.svg 文件没有在这段代码中呈现?我将 robot.svg 文件放在视图文件夹中。此代码位于 partials 文件夹的 header.esj 文件中。

<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<meta name="viewport" content="width=device-wide, initial-scale=1">
    <title>Home Page</title>
    <style>
        body { padding-top:30px; }
      </style>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

    <style>
        .jumbotron {
            margin-left: 50px!important;
        }
    </style>

</head>

<body class="container">
<header>
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        
            <a class="navbar-brand" href="#">
                <img src="../robot.svg" alt="" width="50" height="30" >
              </a>

        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNav">
          <ul class="navbar-nav">
            <li class="nav-item active">
              <a class="nav-link" href="/">Home </a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="/about">About</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="/projects">Projects</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="/services">Services</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="/contact">Contact</a>
            </li>
          </ul>
        </div>
      </nav>

    </header>

假设您的图像在索引文件夹中,提供的路径不正确。应该是:

<img src="./robot.svg" alt="" width="50" height="30" />

而不是

<img src="../robot.svg" alt="" width="50" height="30" />

删除多余的点,它应该可以正常工作

有两种方法可以做到这一点。

方法一 你已经完成的方式。请确保您的路径正确。

方法二 您可以使用 SVG 源代码代替 img scr.

举个例子。

  1. 右键单击您的 svg 图片并选择“打开方式 -> 记事本”。 (如果没有现有的记事本,您必须选择“选择另一个应用程序 -> 记事本”
  2. 然后复制记事本中显示的所有代码(<?xml version="1.0" encoding="UTF-8" standalone="no"?>除外)
  3. 然后粘贴 <img> 的代码,如下例所示。

示例 - https://codepen.io/ran_nin_du/pen/abLMpGw

PS:- 使用 css 更改图像大小,如果您使用的是 React,则可以为此使用单独的组件。

希望这个回答对您有所帮助。