Can not get CSS file

In one of my apps, I have these relevant files in this file structure:

/
index.js
  /public
    /stylesheets
      main.css
  /views
    /partials
      header.ejs

The index.js includes app.use(express.static(path.join(__dirname, '/public'))); Note the /public.

The header.ejs partial includes <link rel='stylesheet' type='text/css' href='/stylesheets/main.css' /> Note the lack of public, it’s implied by the middleware.

In your example, your current directory for static files doesn’t match where you are keeping static files.


Since .css files are static files you have to serve them to the clients. However, you do not serve static files as a express middleware. Add the following middleware to your express app and move the css folder under the public directory (you should create a public directory)

app.use(express.static(path.join(__dirname, 'public')));

So your final directory structure should look like this

app.js
views
  home.html
public
  css
    style.css

And do not forget to require path module

 var path = require('path')

Try this:

<link rel="stylesheet" type="text/css" href="/css/style.css" />

This might solve the problem.