I am trying to access files located in my public folder, using express. My file structure looks like this
/app -app.js /routes -index.js /public /images /misc -background.jpg /css -style.css
My app.js is running on port 3000,
app.use(express.static('app/public')); app.use(require('./routes/index'));
and index.js cannot find background.jpg or style.css
router.get('/',function(req,res){ res.send(` <link rel="stylesheet" type="text/css" href="css/style.css"> <h1>Welome</h1> <img src="/images/misc/background.jpg" style="height:300px;"/> <p>some text</p>`); }); module.exports = router;
I am going by the docs so I have no idea why this is not working.
Advertisement
Answer
As your app.js
and public
folders are inside the app folder, you don’t need to include the app
folder in express.static('app/public')
and also use path.resolve
as below,
var path = require('path'); app.use(express.static(path.resolve('./public')));
Also, change the href
value below to href="/css/style.css"
,
<link rel="stylesheet" type="text/css" href="/css/style.css">