here is my code its not working:
var express = require('express');
var app = express();
// app.use("/", express.static(__dirname + "/public"));
app.use(express.static(__dirname + "/public"));
app.get("/", (req,res) => {
let absolutePath = __dirname + '/views/index.html'
console.log('dirname: ',__dirname)
res.sendFile(absolutePath)
});
module.exports = app;
link to my repl:
my code is returning a 404 its not found
This is serving style.css at /style.css, not /public/style.css as linked in index.html.
ive done the following:
app.use(express.static(__dirname + '/public/style.css'));
its not working for me:
when i right click on the file manager in repl and click copy link it gives me the link as:
https://repl.it/@greykrav/boilerplate-express#public/style.css
Your original code wasn’t wrong, it just didn’t align with the style sheet link in index.html. You have two choices: change the style sheet link or change your route to the static files. According to the docs, you can use
app.use(express.static(__dirname + "/public"));
and serve style.css from /style.css or you can use
app.use('/public', express.static(__dirname + "/public"));
to serve the files in the directory public relative to the project’s working directory from the URL /public relative to the root URL (in other words, /public/style.css as both file location and URL). express.static() just says look in this directory for the static files; the directory/file name has no bearing on the URL that you may choose to assign to the static files.
Or you could change the style sheet link to style.css instead of /public/style.css, which is what I did while debugging.