使用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'));
虽然这不是你的情况,但可能会帮助其他人到达这里。
- 没有find与webpack bundle.js
- Access-Control-Allow-Origin使用Node.js,express和socket.io在OpenShift上
- 从Node.Js和Express.Js中导入的函数返回响应
- 表示路由器参数 – 链接URL
- 如何解决在Opensift express.js错误?
- Scoket.IO v1.0.x基于令牌的身份validation – 不能传递令牌?
- 在expressjs app.VERB调用中next()和next('route')有什么区别?
- Stormpath Express Passport保存customData或甚至默认数据
- req.locals与res.locals与res.data与req.data与快速中间件中的app.locals