使用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'));
虽然这不是你的情况,但可能会帮助其他人到达这里。