Реагирует — логотип бренда навигационной панели начальной загрузки не отображается

#javascript #reactjs #react-bootstrap #graphical-logo

#javascript #reactjs #react-bootstrap #графический-логотип

Вопрос:

Я пытаюсь создать логотип для использования с навигационной панелью в моем приложении react, используя react bootstrap, и я использовал документацию в качестве руководства. Однако при просмотре страницы с использованием localhost://3000 отображается следующее: Логотип приложения не отображается

Что я делаю не так? Я даже попытался скопировать фрагмент кода примера с сайта документации в свой проект, и то же самое отображается. Тем не менее, я открываю файл svg без каких-либо проблем в самом Chrome. Вот мой код для App.js:

 import React from 'react';
import './App.css';
import {
  BrowserRouter as Router,
  Switch,
  Route,
  Link
} from "react-router-dom";
import Container from 'react-bootstrap/Container'
import Navbar from 'react-bootstrap/Navbar';
import Nav from 'react-bootstrap/Nav';

class App extends React.Component {
  constructor(props) {
    super();
    this.state = {
      title: "Danny's Website",
      headerLinks: [
        { title: 'Home', path: '/' },
        { title: 'Projects', path: '/projects' },
        { title: 'Documents', path: '/documents' },
        { title: 'Contact Me', path: '/contact' }
      ],
      home: {
        title: 'Hey there!',
        subtitle: 'Welcome to my personal website.',
        text: 'Placeholder text for now',
      },
      projects: {
        title: 'My Projects',
        subtitle: "From app development to tinkering with robots, I've tried it all",
      },
      documents: {
        title: 'So you wanna see my deets, huh?',
      },
      contact: {
        title: "Let's get in touch",
      }

    }
  }

  render() {
    return (
      <Router>
        <Container fluid={true} className='p-0'>  { /*Fluid false = Huge left margin. Change padding via "className='p-0'" */}
          <Navbar expand="lg" bg="light" variant="light" className="border-bottom">
            <Navbar.Brand href="#home" >
              <img 
                alt=""
                src="/bootstrap-solid.png" 
                width="30px" 
                height="30px" 
                className="d-inline-block align-top"/>{' '}
            Home Site
          </Navbar.Brand>
            <Navbar.Toggle className="border-0" aria-controls="navbar-toggle" />
            <Navbar.Collapse id="navbar-toggle">
              <Nav className="ml-auto">
                <Link className="nav-link" to="/">Home</Link>
                <Link className="nav-link" to="/projects">Projects</Link>
                <Link className="nav-link" to="/documents">Documents</Link>
                <Link className="nav-link" to="/contact">Contact Me</Link>
              </Nav>
            </Navbar.Collapse>
          </Navbar>
        </Container>
      </Router>

    );
  }

}

export default App;

  

Комментарии:

1. ваш способ добавления источника неверен src=»/bootstrap-solid.png» вы должны попытаться поместить это изображение (bootstrap-solid.png) в общую папку

Ответ №1:

 import Logo from '../../images/telcomlogo.jpg';  //  src/images


<Navbar.Brand >
<Link to="/home">
<img width="70px" height="auto" className="img-responsive" src={Logo}  alt="logo" />
               
</Link>
</Navbar.Brand>
  

Комментарии:

1. Пожалуйста, не публикуйте только код в качестве ответа, но также предоставьте объяснение, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и более качественны и с большей вероятностью привлекут одобрение.

Ответ №2:

Ответ пользователя RK_oo7 в разделе комментариев правильный. Ссылка на логотип в исходном коде верна, но логотип должен быть расположен в общей папке, а не в src.

Ответ №3:

поскольку вы используете react-bootstrap, а в документации react-bootstrap говорится: «В любое время, когда вам нужно отобразить часть содержимого, например изображение с необязательной подписью, рассмотрите возможность использования рисунка».

так что, возможно, в вашем случае вы можете сначала импортировать файл изображения и назвать его псевдонимом по своему усмотрению…

 import imagenameasyouwant from '../../assets/img//bootstrap-solid.png';
  

затем вы можете вызвать imagenameasyouwant на «рисунке»

 <Figure><Figure.Image width={100} height={50} alt="100x50" src={imagenameasyouwant} /></Figure>
  

полную документацию о react-bootstrap figure вы можете найти в react-bootstrap documentation about figure

Ответ №4:

Возникла та же проблема, но ее решили, просто добавив оператор import и сославшись на него в атрибуте src img.

Работает нормально даже без рисунка.