2011-10-18 15 views
12

Ho un/directory pubblica che ho impostato come contenente file statici in veloce:Navigazione file statico directory albero in Node.js/esprimere

app.use(express.static(__dirname + '/public')); 

Ha una directory di immagini in esso

/public/images 

E questo ha un sottoalbero profondo di varie immagini. Se inserisco il percorso completo dell'immagine, si carica senza problemi.

http://mysite.com/images/tiles/grass.png 

Quando mi basta andare a un URL come

http://mysite.com/images/tiles/ 

E 'appena mi dà l'errore che dà quando si cerca di trovare un percorso non statica, ma il percorso non esiste .

Come posso fare in modo che tutte le directory nel mio percorso statico mostrino qualcosa di simile al modo in cui Apache mostra la struttura della directory navigabile?

risposta

24

Perché quello che stai chiedendo quando mettere

http://mysite.com/images/tiles/ 

è un elenco di directory richiesta, e sembra che statica middleware serve solo file non directory. Devi usare

app.use(express.directory(your_path)); 
app.use(express.static(your_path)); 

Questo ti permetterà di richiedere l'URI di cui stai parlando.

+0

funzionato alla grande, grazie! Questo non è nell'attuale guida rapida. Richiesto aggiornamento da 2.4.4 a 2.4.7 (per chiunque abbia questo problema) – RobKohr

+4

Se si desidera utilizzare file index.html quando viene fornito un percorso, inserire express.static prima express.directory. Statico caricherà il file indice in modo che la navigazione nella directory non avvenga quando il file è presente. – RobKohr

10

Per Express 4 questo sembra un po 'diverso:

var directory = require('serve-index'); 
app.use(directory(your_path)); 

sezione sono riportati i dettagli:

https://github.com/expressjs/serve-index

+0

Serve anche sottodirectory? – Dinoboff

+0

Sì, lavora per me. –

+0

posso vedere anche il file? –

Problemi correlati