Je souhaite diffuser des fichiers statiques comme cela se fait habituellement avec express.static(static_path)
mais sur une route dynamic, comme cela se fait habituellement avec
app.get('/my/dynamic/:route', function(req, res){ // serve stuff here });
Une solution est suggérée dans ce commentaire par l’un des développeurs, mais ce n’est pas tout à fait clair pour moi.
D’accord. J’ai trouvé un exemple dans le code source de l’ object de réponse Express. Ceci est une version légèrement modifiée de cet exemple.
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'}); });
Il utilise la méthode res.sendfile
.
REMARQUE : les modifications de sécurité apscopes à sendfile
nécessitent l’utilisation de l’option root
.
J’utilise le code ci-dessous pour servir les mêmes fichiers statiques demandés par différentes URL:
server.use(express.static(__dirname + '/client/www')); server.use('/en', express.static(__dirname + '/client/www')); server.use('/zh', express.static(__dirname + '/client/www'));
Bien que ce ne soit pas votre cas, cela peut aider d’autres personnes qui sont arrivées ici.