Displaying an image with EJS in node.js/express

gone picture gone · Jul 19, 2013 · Viewed 43.1k times · Source

I'm just trying to get setup with node.js/express/ejs. I know ejs isn't actual HTML and so I'm having a hard time just displaying a simple image. Can someone point me in the right direction?

Directory structure is:

  • myApp/server.js
  • myApp/views/index.ejs
  • myApp/logo.jpg

Right now I have

// index.ejs
<img src = "../logo.jpg" />

Am I going about this the wrong way? Thanks.

Answer

gustavohenke picture gustavohenke · Jul 19, 2013

Static files in Express must go inside the directory specified in your static middleware. This is commonly ./public/.

For example, in your server.js you may have something like this:

app.use( express.static( "public" ) );

Each file inside this folder will be accessible from the root URL, so this will work:

<img src="logo.jpg" />