无法在 expressjs 中为前端和后端使用多个静态路径

unable to use multiple static paths for frontend and backend in expressjs

我正在创建一个 nodejs/backbone 应用程序并希望保持后端和前端的目录不同。这是我的目录结构:

├── backend
│   ├── api
│   ├── file-uploads
│   └── ui
│       ├── assets
│       │   ├── css
│       │   ├── images
│       │   └── js
│       └── index.html
├── frontend
│   ├── assets
│   ├── index.html
│   └── modules
├── index.js
├── npm-debug.log
└── package.json

在 index.js 文件中,我有以下代码

app.use(express.static('/admin',__dirname + '/backend/ui/'));
app.use(express.static(__dirname + '/frontend/'));

现在 url / 工作正常并在 /frontend 目录中显示 index.html 文件,但 url /admin 不工作。我期待它在 /backend/ui/ 目录中显示 index.html 文件。我哪里出错了?

您需要将 URL 路径 '/admin' 传递给 app.use([path], function) rather than express.static(root, [options]):

app.use('/admin', express.static(__dirname + '/backend/ui/'));
app.use(express.static(__dirname + '/frontend/'));

中间件只需要一个路径,因此它目前正在尝试从您硬盘上的 /admin 目录提供文件。