ejs:为什么它停止渲染 CSS?
ejs : why it's stop to render CSS?
我对 EJS 有误解,当我发出 post 请求时,EJS 正确呈现我的 CSS,但是当我这样做时:
exports.resetpassword = async (req, res) => {
const {id, token} = req.params;
const user = await LoginModel.findById(id).exec();
const secret = process.env.TOKEN_SECRET + user.password
try {
const payload = jwt.verify(token, secret)
req.flash('emailReseter', `${user.email}`);
res.render("resetpassword.ejs", {messageMail: req.flash("emailReseter")});
} catch (error) {
console.log(error.message);
}
};
这是我看到的:
我无法使用我的 css 文件,我不知道问题出在哪里。
我的其他 EJS 文件是相同的,除了头部 link 和我的 css 工作正常。
到目前为止我唯一的方法
我在我的路线中添加:
const router = require("express").Router();
const services = require('../service/render');
router.get("/", services.login);
router.get('/forgot-password', services.forgotpassword);
router.get('/reset-password/:id/:token', services.resetpassword);
router.get('/reset-password', services.resetpasswordredirect)
在我的 render.js
exports.resetpassword = async (req, res) => {
const {id, token} = req.params;
const user = await LoginModel.findById(id).exec();
const secret = process.env.TOKEN_SECRET + user.password
try {
const payload = jwt.verify(token, secret)
req.flash('emailReseter', `${user.email}`);
res.redirect('/reset-password')
} catch (error) {
console.log(error.message);
}
};
exports.resetpasswordredirect = async (req,res)=>{
res.render("resetpassword.ejs", {messageMail: req.flash("emailReseter")});
}
我以前的解决方案不好,因为如果我在参数中有一个 ID,那么我的 css 就不起作用。
所以我改变了我的server.js
app.use(express.static("public"));
至:
app.use('/public', express.static("public"));
还更改了我所有的 ejs 文件,例如:
<link rel="stylesheet" href="css/login.css">
变成了:
<link rel="stylesheet" href="/public/css/login.css">
我对 EJS 有误解,当我发出 post 请求时,EJS 正确呈现我的 CSS,但是当我这样做时:
exports.resetpassword = async (req, res) => {
const {id, token} = req.params;
const user = await LoginModel.findById(id).exec();
const secret = process.env.TOKEN_SECRET + user.password
try {
const payload = jwt.verify(token, secret)
req.flash('emailReseter', `${user.email}`);
res.render("resetpassword.ejs", {messageMail: req.flash("emailReseter")});
} catch (error) {
console.log(error.message);
}
};
这是我看到的:
我无法使用我的 css 文件,我不知道问题出在哪里。
我的其他 EJS 文件是相同的,除了头部 link 和我的 css 工作正常。
到目前为止我唯一的方法
我在我的路线中添加:
const router = require("express").Router();
const services = require('../service/render');
router.get("/", services.login);
router.get('/forgot-password', services.forgotpassword);
router.get('/reset-password/:id/:token', services.resetpassword);
router.get('/reset-password', services.resetpasswordredirect)
在我的 render.js
exports.resetpassword = async (req, res) => {
const {id, token} = req.params;
const user = await LoginModel.findById(id).exec();
const secret = process.env.TOKEN_SECRET + user.password
try {
const payload = jwt.verify(token, secret)
req.flash('emailReseter', `${user.email}`);
res.redirect('/reset-password')
} catch (error) {
console.log(error.message);
}
};
exports.resetpasswordredirect = async (req,res)=>{
res.render("resetpassword.ejs", {messageMail: req.flash("emailReseter")});
}
我以前的解决方案不好,因为如果我在参数中有一个 ID,那么我的 css 就不起作用。
所以我改变了我的server.js
app.use(express.static("public"));
至:
app.use('/public', express.static("public"));
还更改了我所有的 ejs 文件,例如:
<link rel="stylesheet" href="css/login.css">
变成了:
<link rel="stylesheet" href="/public/css/login.css">