I want to be able to send the same files for different paths like /stuff and /stuff/foo, the problem is that when I do try to do this I'm getting the following error:
Refused to execute script from 'http://localhost:8000/stuff/main.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
Here is the code:
app.use("/", express.static(path.join(__dirname, "./../public")));
app.get("/stuff", sendIndexHTML);
app.get("/stuff/:id", sendIndexHTML);
function sendIndexHTML(req, res) {
res.sendFile(path.join(__dirname + "./../public/index.html"));
}
You're referencing main.js in your index.html as a relative path so it's getting served from /stuff, which that path is set up to return index.html (which has a mime type text/html).
What you need to do is update the script file path in your html file.
change
<script src="main.js"></script>
to
<script src="/main.js"></script>
that way it is served from the root path which is configured to serve static assets.