Node.js - cargar url con express y node

 
Vista:
sin imagen de perfil

cargar url con express y node

Publicado por Davit (1 intervención) el 20/12/2021 17:55:16
Estoy en mi primero contacto con node.js y Express y llevo dándole vueltas un rato a un problema y no sé que me he saltado, pero algo tan básico como cargar una imagen no consigo hacerlo, no reconoce el url.
por un lado tengo donde hago la definición previa para usar pug. definir la carpeta public para cargas imagenes, estilos, etc, definir el localhost ...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import express from "express";
import router from "./routes/index.js";
 
 
const app = express();
 
//definir puerto
const port = process.env.PORT || 4000;
 
// Habilitar pug
app.set('view engine', 'pug');
 
//definir la carpeta pública
app.use(express.static('public'));
 
//agregar router
app.use('/', router);


Y por otro tengo el head en pug, que funciona bien:
1
2
3
4
5
6
7
8
9
10
11
doctype html
html(lang="en")
    head
        meta(charset="UTF-8")
        meta(http-equiv="X-UA-Compatible", content="IE=edge")
        meta(name="viewport", content="width=device-width, initial-scale=1.0")
        title Document
 
    body
        h1 Título
        block contenido

Y donde me viene el problema que es aquí:
1
2
3
4
5
6
extends ./layout/index
 
block contenido
    p Nosotros
 
    img(src="/img/imagen.jpg")

A lo mejor estoy equivocado pero al definir la carpeta como public, desde el localhost podría acceder a los archivos de dentro escribiendo la ruta tal cual, no? es decir localhost:4000/img/imagen.jpg

Algo (o varias cosas) se me escapa y no consigo que me reconozca la ruta. A ver si alguien puede echarme una mano!
Un saludo y gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder