Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

2.3K
Vistas
Cargar imágenes locales en React.js

Instalé React usando create-react-app . Se instaló bien, pero estoy tratando de cargar una imagen en uno de mis componentes ( Header.js , ruta del archivo: src/components/common/Header.js ) pero no se está cargando. Aquí está mi código:

 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> ); }

Si escribo la ruta de la imagen como src={require('./src/images/logo.png')} en mi variable logo1 , da el error:

No se pudo compilar.

Error en ./src/Components/common/Header.js

Módulo no encontrado: ./src/images/logo.png en /var/www/html/wistful/src/Components/common

Por favor, ayúdame a resolver esto. Déjame saber lo que estoy haciendo mal aquí.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si tiene preguntas sobre cómo crear la React App , le recomiendo que lea su Guía del usuario .
Responde a esta y muchas otras preguntas que pueda tener.

En concreto, para incluir una imagen local tienes dos opciones:

  1. Usar importaciones :

     // Assuming logo.png is in the same folder as JS file import logo from './logo.png'; // ...later <img src={logo} alt="logo" />

Este enfoque es excelente porque todos los activos son manejados por el sistema de compilación y obtendrán nombres de archivo con hash en la compilación de producción. También obtendrá un error si el archivo se mueve o elimina.

La desventaja es que puede volverse engorroso si tiene cientos de imágenes porque no puede tener rutas de importación arbitrarias.

  1. Utilice la carpeta pública:

     // Assuming logo.png is in public/ folder of your project <img src={process.env.PUBLIC_URL + '/logo.png'} alt="logo" />

Este enfoque generalmente no se recomienda, pero es excelente si tiene cientos de imágenes e importarlas una por una es demasiado complicado. La desventaja es que debe pensar en la prevención de caché y tener cuidado con los archivos movidos o eliminados.

¡Espero que esto ayude!

over 4 years ago · Santiago Trujillo Denunciar

0

Si desea cargar la imagen con una local relative URL como lo está haciendo. El proyecto React tiene una carpeta public predeterminada. Debes poner tu carpeta de images dentro. Funcionará.

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar

0

En React o cualquier módulo de Javascript que use Webpack internamente, si el valor del atributo src de img se proporciona como una ruta en formato de cadena como se indica a continuación

 eg <img src={'/src/images/logo.png'} /> or <img src='/src/images/logo.png' />

luego, durante la construcción, la página HTML final construida contiene src='/src/images/logo.png'. Esta ruta no se lee durante el tiempo de compilación, pero se lee durante la representación en el navegador. En el momento de la renderización, si el logo.png no se encuentra en el directorio /src/images, la imagen no se renderizará. Si abre la consola en el navegador, puede ver el error 404 para la imagen. Creo que querías usar el directorio ./src en lugar del directorio /src. En ese caso, el directorio de desarrollo ./src no está disponible para el navegador. Cuando la página se carga en el navegador, solo los archivos en el directorio 'público' están disponibles para el navegador. Por lo tanto, se supone que la ruta relativa ./src es el directorio public/src y si logo.png no se encuentra en el directorio public/src/images/, no representará la imagen.

Entonces, la solución para este problema es colocar su imagen en el directorio público y hacer referencia a la ruta relativa del directorio público o usar import o require palabras clave en React o cualquier módulo de Javascript para informar al Webpack que lea esta ruta durante la fase de compilación e incluir la imagen en la salida final de la compilación. Los detalles de ambos métodos han sido elaborados por Dan Abramov en su respuesta, consúltelos o use el enlace: https://create-react-app.dev/docs/adding-images-fonts-and-files/

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda