使用Express在dynamic路由上服务静态文件

我想像通常一样使用express.static(static_path)来处理静态文件,但是在dynamic路由上

 app.get('/my/dynamic/:route', function(req, res){ // serve stuff here }); 

一个开发者在这个评论中暗示了一个解决scheme,但是我不清楚他的意思。

好的。 我在Express的响应对象的源代码中find了一个例子。 这是一个稍微修改过的例子。

 app.get('/user/:uid/files/*', function(req, res){ var uid = req.params.uid, path = req.params[0] ? req.params[0] : 'index.html'; res.sendfile(path, {root: './public'}); }); 

它使用res.sendfile方法。

注意 :对sendfile安全更改需要使用root选项。

我使用下面的代码来提供不同的URL所要求的相同的静态文件:

 server.use(express.static(__dirname + '/client/www')); server.use('/en', express.static(__dirname + '/client/www')); server.use('/zh', express.static(__dirname + '/client/www')); 

虽然这不是你的情况,但可能会帮助其他人到达这里。