Express js不提供静态文件

我已经走上了这条路

var path = require('path'); var express = require('express'); var app = express(); var admin = express(); admin.use(express.static(path.join(__dirname, 'public/'))); // mount admin path app.use('/admin', admin); 

然后我定义了一些路线,例如

 admin.get('/jobs', function(req, res){ res.render('jobs/index'); }); admin.get('/jobs/create', function(req, res){ res.render('jobs/create'); }); 

在第一个路由静态文件,如js,css,images加载没有问题。 但在第二个它不会加载文件。

文件加载在像这样的意见

 <link rel="stylesheet" href="styles/css/main.css"> 

注意:styles目录在我的工作目录中的公共文件夹下。

那么问题是什么? 我做错了什么?

将静态中间件添加到admin快速实例中,该实例安装在/adminpath的主app中。 这意味着它将永远不会被调用路由以外的匹配/admin 。 将您的中间件移动到主应用程序实例,

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

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

那么href="/styles/css/main.css"

希望能帮助到你。