Nodejs 求助,express 渲染 jade 失效

发布于 1周前 作者 htzhanglong 来自 nodejs/Nestjs

Nodejs 求助,express 渲染 jade 失效
问题描述:
最近做的几个项目都存在 jade 渲染失败,浏览器上显示 html 源码,我把 jade 改为 pug 还是不能解决问题。网上的几个解决方法也无效。发出来向大家请教一下。

渲染失败效果如图:
https://img-blog.csdn.net/20180326125918483?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE0ODE1NDM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

如果我描述的不清楚,请参考:
https://blog.csdn.net/u011481543/article/details/79696565
http://cnodejs.org/topic/55b058330500ae450bcc3770

谢谢。


6 回复

三年了都没搞定?你不如上代码


80% content type 的锅

最近遇到这个 bug,参考部分是网友遇到同样的问题。代码是 express-generator 生成的,还没写过东西。
在 layout.pug 里加上 meta( http-equiv=“Content-Type” content=“text/html; charset=utf-8”)了。

我怀疑是缓存的问题,清除后又渲染成功了。wtf?

在 Response 中写 Content-Type 响应头, 而不是在 HTML 中写 meta.

meta 的优先级比 Response 响应中的 Content-Type 低多了.

用 webstrom 新建一个 demo 还有问题吗?不是的话就是写法有问题。

在Node.js中使用Express框架渲染Jade(现在通常称为Pug)模板时,如果遇到渲染失效的问题,通常可能是由于以下几个原因导致的:

  1. 确保已正确安装Pug(Jade): 首先,确保你已经安装了pug包。可以通过以下命令安装:

    npm install pug --save
    
  2. 配置Express使用Pug: 确保你在Express应用中正确设置了视图引擎。以下是一个基本示例:

    const express = require('express');
    const app = express();
    
    app.set('views', path.join(__dirname, 'views')); // 设置视图文件夹
    app.set('view engine', 'pug'); // 设置视图引擎为Pug
    
    app.get('/', (req, res) => {
        res.render('index', { title: 'Hello World' }); // 渲染视图并传递数据
    });
    
    app.listen(3000, () => {
        console.log('Server is running on port 3000');
    });
    
  3. 检查视图文件路径和内容: 确保你的视图文件(例如index.pug)位于正确的路径下,并且内容格式正确。例如:

    doctype html
    html
      head
        title= title
      body
        h1= title
    
  4. 检查错误日志: 查看Node.js的控制台输出,看是否有任何错误信息可以帮助你诊断问题。

按照以上步骤检查并配置,通常可以解决Express渲染Pug模板失效的问题。如果问题仍然存在,请检查具体的错误信息并进一步调试。

回到顶部