'How to apply css to to node.js?
In this code I'm calling an html file into app.js, the css style is not applied to the html but when I open the html path alone without the app.js the style is applied, here's the code:
const express = require("express");
const bodyParser = require("body-parser");
const ejs = require("ejs");
const mongoose = require('mongoose');
const app = express();
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static("public"));
mongoose.connect("mongodb://localhost:27017/aqeldb1", {useNewUrlParser: true});
app.route("/order")
.get(function(req, res){
res.sendFile(__dirname + "/ordernow.html");
});
app.listen(3000, function() {
console.log("Server started on port 3000");
});
Solution 1:[1]
Use in your main .js file:
app.use('/css',express.static(__dirname +'/css'));
use in you main .html file:
<link rel="stylesheet" type="text/css" href="css/style.css" />
Please keep .css files in the public folder
Solution 2:[2]
You need to set as static the directory where the .css files are or /index.html won't be able to access them when loaded through the express server.
app.use(express.static("directory/that/you/want/to/be/publicly/accessible")); <-- here you keep .css, and clientside .js files.
You could also put the .css files in the public folder if you don't want to add another static directory. A good approach is to make all the directories that contain the view files (.html, .css, .js) static.
Solution 3:[3]
Try to apply app.use(express.static('public'));
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Suhasini |
| Solution 2 | |
| Solution 3 | Crystal |
