Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用Swig呈现静态文件_Node.js_Express_Swig Template - Fatal编程技术网

Node.js 使用Swig呈现静态文件

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** 我添加了这

我正试图用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"}]});