Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

232
Views
la imagen no se carga desde la carpeta estática expresa

Las imágenes se cargan desde la carpeta local, pero no desde la carpeta de carga, que se declara estática.

He estado tratando de cargar un archivo desde el navegador, la imagen se cargó correctamente y se guardó correctamente, pero mientras se procesan las imágenes de la carpeta de carga, no se procesan.

Así es como se procesa la primera imagen que está en src/public mientras que las cargas/imágenes no se procesan

Datos de muestra de la base de datos MongoDb

 _id:1 ... image:"/images/mouse.jpg" ... _id:2 ... image:"/uploads/image-1647229113730.jpeg" ...

Componente del producto

 const Product = ({ product }) => { return ( <Card className='my-3 p-3 rounded'> <Link to={`/product/${product._id}`}> <Card.Img src={product.image} variant='top' /> </Link> <Card.Body> ... </Card.Body> </Card> ) } export default Product

La jerarquía de archivos es la siguiente

 Repo | backend | server.js | frontend | public | images |mouse.jpg | uploads | image-1647229113730.jpeg

En server.js en el backend, he hecho que la carpeta de carga sea estática

 const __dirname = path.resolve(); app.use("/uploads", express.static(path.join(__dirname, "/uploads")));

mi problema es sencillo,

/images/mouse.jpg es accesible | /uploads/image-1647229113730.jpeg no es accesible

aunque ambos están en la carpeta de proyectos, ¿por qué?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En su server.js, está declarando __dirname que anula el __dirname declarado implícitamente que el nodo le proporciona.

Entonces, en lugar de usar el valor de path.resolve(), que es el directorio de trabajo actual como se describe aquí , no debe declarar __dirname usted mismo y usar el __dirname que proporciona el nodo. Esa es la ruta donde se encuentra su archivo fuente.

Luego puede usar path.join(__dirname,'../uploads') para obtener la ruta de su carpeta de cargas. (Los dos puntos son importantes)

EDITAR:

Lo siento. He olvidado por completo que __dirname no está disponible en los módulos ES...

Pero aquí hay otra manera que podría funcionar:

 import { URL } from 'url'; const __dirname = new URL('.', import.meta.url).pathname; app.use("/uploads", express.static(path.join(__dirname, "../uploads")));
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!