当前位置: 首页 > 面试题库 >

在React.js中加载本地图像

董子航
2023-03-14
问题内容

我已经使用安装了React create-react- app。它安装得很好,但是我试图将图像加载到我的一个组件(Header.js,文件路径:)中,src/components/common/Header.js但是没有加载。这是我的代码:

import React from 'react';

export default () => {
  var logo1 = (
    <img 
      //src="https://s3.amazonaws.com/codecademy-content/courses/React/react_photo-goose.jpg"
      src={'/src/images/logo.png'}
      alt="Canvas Logo"
    />
  );
  return (
    <div id="header-wrap">
      <div className="container clearfix">
        <div id="primary-menu-trigger">
          <i className="icon-reorder"></i>
        </div>

        <div id="logo">
          <a href="/" className="standard-logo" data-dark-logo='/images/logo-dark.png'>{logo1}</a>
          <a href="/" className="retina-logo" data-dark-logo='/images/logo-dark@2x.png'>
            <img src='/var/www/html/react-demo/src/images/logo@2x.png' alt="Canvas Logo" />
          </a>
        </div>
      </div>
    </div>
  );
}

如果我src={require('./src/images/logo.png')}logo1变量中写入图像路径,则会出现错误:

编译失败。

./src/Components/common/Header.js中的错误

找不到模块:/ var / www / html / wistful / src / Components /
common中的./src/images/logo.png

请帮我解决这个问题。让我知道我在这里做错了。


问题答案:

如果您对创建有任何疑问,React App建议您阅读其用户指南。
它回答了这个问题以及您可能遇到的许多其他问题。

具体来说,要包含本地图像,您有两个选择:

  1. 使用进口:
        // Assuming logo.png is in the same folder as JS file
    import logo from './logo.png';

    // ...later
    <img src={logo} alt="logo" />

这种方法很棒,因为所有资产都由构建系统处理,并且将在生产构建中获取带有哈希的文件名。如果文件被移动或删除,您也会收到错误消息。

不利的一面是,如果您有数百张图片,可能会很麻烦,因为您不能拥有任意的导入路径。

  1. 使用公用文件夹:
        // Assuming logo.png is in public/ folder of your project
    <img src={process.env.PUBLIC_URL + '/logo.png'} alt="logo" />

通常不建议使用这种方法,但是如果您有数百张图像,并且一次导入一个图像太麻烦了,那就太好了。缺点是您必须考虑缓存清除,并自己注意移动或删除的文件。

希望这可以帮助!



 类似资料:
  • 问题内容: 我正在构建一个小型React应用,并且我的本地图像无法加载。图像像负载。我以为这可能与服务器有关? 这是我的App.js index.js: 和server.js: 问题答案: 使用Webpack时,您需要对图像进行处理,以便Webpack处理它们,这可以解释为什么外部图像不加载而内部图像加载的原因,因此,您无需为每个图像使用正确的图像名称替换image-name.png。这样,Web

  • 背景 我在屏幕上放置了一个图像,用于在屏幕加载其他内容时显示。 我想使图像居中,这样它在所有设备上都是居中的。 问题 目前,图像显示在顶部中心。我希望它也垂直对齐。还要确保它在所有设备上看起来始终相同。 问题 确保图像始终居中并且所有设备的尺寸都正确的解决方案是什么? 例子, 我当前的代码, 在Photoshop中 图像为 300 分辨率 高度为 776 px 宽度为 600 px 我希望图像在所

  • 我有以下代码可以将本机谷歌地图应用加载到我的项目中: 是否有任何限制或先决条件,我应该知道 因为它可以在我的笔记本电脑模拟器上工作,但不能在PC模拟器上工作 我只加载本机谷歌地图应用程序,它应该可以在任何模拟器上运行<我在这里错过了什么吗?? 我得到空白黑屏和logcat错误是: 04-16 16:20:06.051:D/PhoneWindow(841):无法保存哪个视图具有焦点,因为焦点视图已关

  • 图像的html代码 heroku bash显示Howling.jpg

  • 问题内容: 当它的DOM元素(包括所有子节点)实际加载到页面上并准备就绪时,我想在我的react.js组件上调用一个回调。具体来说,我有两个要渲染相同大小的组件,选择具有自然尺寸的任何一个组件的最大值。 看起来并不是我真正想要的,因为每个组件仅被调用一次,但是我希望在组件完成渲染后再次调用我的回调。我以为可以将事件添加到顶级DOM元素中,但是我想这仅适用于某些元素,例如和。 问题答案: 看起来像的

  • 问题内容: 基本上我得到以下HTML: 在本地该图标在按钮上显示正常,但是当我在Windows Azure上运行时,出现以下带有怪异的外观前缀而不是图标的按钮: 在此处输入图片说明 考虑到这一点,我意识到当本地访问我的网站时,浏览器将尝试加载文件:/Content/fonts/glyphicons-halflings-regular.woff(成功完成),而在线(天蓝色)时,它将尝试加载以下文件: