Javascript 如何在同一个节点服务器上呈现Jade模板和HTML文件?

Javascript 如何在同一个节点服务器上呈现Jade模板和HTML文件?,javascript,html,node.js,express,pug,Javascript,Html,Node.js,Express,Pug,我目前在我的节点项目中使用Jade模板。设置非常基本: app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); 我正在用纯HTML构建我网站的新部分,HTML模板位于与Jade模板不同的文件夹中。 我的问题是,我怎样才能设置一个HTML视图引擎来为来自不同目录的文件提供服务(即:不是来自视图)?好的,这些HTML文件将需要与您的nodejs服务器交互,以更改诸如“title”之类的值 翡翠

我目前在我的节点项目中使用Jade模板。设置非常基本:

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
我正在用纯HTML构建我网站的新部分,HTML模板位于与Jade模板不同的文件夹中。
我的问题是,我怎样才能设置一个HTML视图引擎来为来自不同目录的文件提供服务(即:不是来自
视图
)?

好的,这些HTML文件将需要与您的nodejs服务器交互,以更改诸如“title”之类的值

翡翠- title=页面标题 (参考:)工程

然而,为了在提供HTML页面时获得相同的功能,您必须首先提供HTML页面作为对请求的响应,然后发出另一个AJAX请求来更改DOM

要提供HTML页面,您可以使用“fs”读取文件HTML文件内容,然后使用HTML内容响应用户请求或使用“express”功能
response.sendFile('/path/to/file.html')。

您有两个选项

  • 您只需将普通HTML放在.jade文件中,就可以了

  • 或者,您可以设置一个静态路由器,直接为HTML文件提供服务

    app.use(express.static('./html-views'));
    
    这样,您的
    /html视图中的任何内容都将以静态方式提供。
    
    GET/view.html
    将提供
    /html视图/view.html


  • 您可以将普通HTML放在.jade文件中,它会工作的,谢谢。有没有从两个不同的文件夹中提供.jade和.html?这也可以解决它,所以我将它标记为答案。我所做的是使用
    res.sendfile(path.join(uuu dirname,../path,'../index.html')
    从不同于我的.jade模板所在的目录提供html文件。