node如何配置多个views目录?

题目可能说的不清楚,先上个图:
图片描述

红框中的配置只是将views作为动态渲染模板的目录,所以只能访问views文件夹下的页面,现在需要在views下面建立多个文件夹,比如:
图片描述

现在不仅要访问plan_detail.htmlsale_net.html还要能访问project1project2中的页面。
比如访问plan_detail.html地址栏直接是localhost:3000/plan_detail
访问project1中的页面就是localhost:3000/project1/pageName
主文件(index.js)里应该怎么修改呢?

下面附上主文件代码:

var express = require('express');
var exphbs = require('express-handlebars');
var path = require('path');
var app = express();

app.engine('.html', exphbs({
    partialsDir:'views/include',
    extname: '.html'
}));

app.set('views','./views');
app.set('view engine', '.html');

app.use(express.static(path.join(__dirname,'public')));

app.all('*', function (req, res) {
    res.render(req.url.split('/')[1]);
});

app.listen(3000);
阅读 6.6k
3 个回答

这个views里的是指模版,不是你理解的页面;

localhost:3000/project1/pageName 这么访问要建好服务端的映射,

app.get("/project1/pageName",function(req,res){

//

});

views里的模版是在 res.render('pageName',{xxx:xxx}); 作键用的;

模板文件只能访问views下面的目录,可以在下面检录多个目录,进行不同业务的分割,或者个公共文件的划分。

在模板文件中如果引用其他目录下的文件可以用include去引用

在res.render里把路径写上就好

app.get('\pageName', function (req, res) {

    res.render('project1/pageName'); 
    
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题