用Swig呈现静态文件

我试图用NodeJS开发一个Blog。 我find了一个不错的HTML博客主题 ,并将所有文件都放到了视图文件夹中。 这是app.js的内容

var express = require('express'), app = express(), cons = require('consolidate'); app.engine('html', cons.swig); app.set('view engine', 'html'); app.set('views', __dirname + '/views'); //app.use(express.static(__dirname + '/views')); app.use(express.bodyParser()); // I'm using Express 3, not 4. app.use(app.router); app.get('/', function(req,res){ res.render('index', {menu_items:[{"link":"#","text":"TXT"},{"link":"#","text":"TXT"}]}); }); app.listen(3000); 

此代码呈现index.html,并在index.html中呈现menu_items 。 但它并不像css和js那样呈现静态文件。

在这里输入图像描述

为了渲染它们,我正在评论app.use(express.static(__ dirname +'/ views')); 线。 这一次是渲染静态文件,但不是在index.html中渲染menu_itemsvariables。 在这里输入图像描述

您可以看到此存储库中的所有文件。 你能告诉我我错过了什么吗?

**更新1 **我已经添加了这些行而不是那个注释行

 app.use('/css', express.static(__dirname + '/views/css')); app.use('/img', express.static(__dirname + '/views/img')); app.use('/js', express.static(__dirname + '/views/js')); 

但是我不确定这是否是解决我的问题的正确方法。

当你把路由string设置为“/”时,模式匹配所有的url请求。 “/”后面的处理程序被忽略。 所以,你需要先添加行,

 app.use('/css', express.static(__dirname + '/views/css')); app.use('/img', express.static(__dirname + '/views/img')); app.use('/js', express.static(__dirname + '/views/js')); 

然后在最后加上这个路由器,

 app.get('/', function(req,res){ res.render('index', {menu_items:[{"link":"#","text":"TXT"},{"link":"#","text":"TXT"}]}); 

});