Node.js 使用Swig呈现静态文件
我正试图用NodeJS开发一个博客。我找到了一个很好的文件夹,并将所有文件放在视图文件夹中。这是app.js的内容 这段代码正在呈现index.html,还呈现index.html中的菜单项。但它不会呈现css和js等静态文件 为了呈现它们,我在app.use(express.static(uu dirname+'/views')上注释出app强>行。这次它将呈现静态文件,但不会呈现index.html中的菜单项变量。 您可以在中查看所有文件。你能告诉我我错过了什么吗 **更新1** 我添加了这些行,而不是注释行Node.js 使用Swig呈现静态文件,node.js,express,swig-template,Node.js,Express,Swig Template,我正试图用NodeJS开发一个博客。我找到了一个很好的文件夹,并将所有文件放在视图文件夹中。这是app.js的内容 这段代码正在呈现index.html,还呈现index.html中的菜单项。但它不会呈现css和js等静态文件 为了呈现它们,我在app.use(express.static(uu dirname+'/views')上注释出app行。这次它将呈现静态文件,但不会呈现index.html中的菜单项变量。 您可以在中查看所有文件。你能告诉我我错过了什么吗 **更新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'));
但我不确定这是否是解决我的问题的正确方法。当您将路由字符串设置为“'/”时,该模式匹配所有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"}]});
})) 实际上,我将HTML文件和其他静态文件(如css、img和js)放在单独的文件夹中,只需使用
app.use('/css',express.static(uu dirname+'/statics')代码>但这也是一个可以接受的答案。非常感谢。
app.get('/', function(req,res){
res.render('index', {menu_items:[{"link":"#","text":"TXT"},{"link":"#","text":"TXT"}]});