Подавать статические файлы в динамическом маршруте с помощью Express
Я хочу использовать статические файлы, как это обычно делается с express.static(static_path)
, но в динамическом
маршрут, как это обычно делается с помощью
app.get('/my/dynamic/:route', function(req, res){
// serve stuff here
});
Решение намечено в этом comment одним из разработчиков, но мне не сразу понятно, что он имеет в виду.
Ответы
Ответ 1
Хорошо. Я нашел пример в исходном коде для выражения "объекта ответа. Это немного измененная версия этого примера.
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
.
Ответ 2
Я использую ниже код для обслуживания тех же статических файлов, которые запрашиваются разными URL-адресами:
server.use(express.static(__dirname + '/client/www'));
server.use('/en', express.static(__dirname + '/client/www'));
server.use('/zh', express.static(__dirname + '/client/www'));
Хотя это не ваше дело, это может помочь другим, кто попал сюда.