【发布时间】:2020-06-24 18:46:55
【问题描述】:
我有一个使用 Pug/jade 模板引擎的 Node/Express 应用程序,我可以很好地渲染一切!但问题是当我在index.pug 文件中添加/更改/删除某些内容时,或者如果我在index.pug 中注释每一行代码。甚至更改res.render()中的渲染文件即使我手动停止并重新启动服务器,我也没有在主页上看到任何更改!
我认为这是因为某种方式的缓存。但我已明确将其关闭见下文。
这是我的app.js 配置
const path = require("path");
const logger = require("morgan");
const express = require("express");
const viewRouter = require("./routes/viewRouter");
const bodyParser = require("body-parser");
// Initialize app
const app = express();
app.enable("trust proxy");
app.set("view engine", "pug");
app.set("views", path.join(__dirname, "views"));
app.set("view cache", false);
// Server Static files. Because the CSS and JS won't work!
app.use(express.static(path.join(__dirname, "public")));
if (process.env.NODE_ENV === "development") app.use(logger("dev"));
app.use(
bodyParser.urlencoded({
extended: true,
})
);
app.use(bodyParser.json());
app.get("/", viewRouter);
app.post("/", viewRouter);
module.exports = app;
在网上看到一些解决方案后,我后来添加了app.set("view cache", false);。但它不起作用
这是我的viewRouter.js
const express = require("express");
const app = express();
const router = express.Router();
const viewController = require("../controllers/viewController");
router.route("/").get((req, res) => {
res.status(200).render("index", {
name: "Hello",
todos: req.body.storage,
});
});
module.exports = router;
TL;DR:- 我的 Pug 文件更改没有被编译。即使在手动重新启动服务器后
【问题讨论】:
-
如果您在隐身/私人窗口中打开它,是否会反映更改?
-
没有。他们没有。即使我打开一个新的浏览器,它们也不会反映。
-
您是在本地运行应用程序还是通过代理运行应用程序?
-
那不是缓存问题。您使用什么将 pug 文件呈现为 html?因为听起来这很可能是问题所在。
-
@SonNguyen 我不明白。但是我有一个信任代理的中间件,您可以在上面的代码中看到。除此之外我不知道你的意思
标签: javascript node.js express pug