En su archivo server.js , use esta línea en lugar de la que tiene:
app.use(express.static(path.join(__dirname, "/public"))); La línea de arriba le dice a express dónde encontrar los bienes públicos. Con esto, cada vez que escribes / en un archivo ejs , ya estás en la carpeta pública.
Por ejemplo, vinculará su archivo css así (supongo que sus estilos css están dentro public/css/styles.css ):
<link href="/css/styles.css" rel="stylesheet">su problema no es con la etiqueta de enlace en su archivo Ejs. el problema es definir la ruta de su archivo dentro del archivo server.js
la solución es usar el método estático dentro del middleware express 'use' de la siguiente manera:
app.use(express.static(__dirname + '/public'));esto significa que le está diciendo a express dónde encontrar y entregar archivos estáticos.
para vincular el archivo css, todo lo que tiene que hacer dentro de su archivo Ejs es agregar una etiqueta de enlace de la siguiente manera:
<link href="/css/styles.css" rel="stylesheet" type="text/css">