2011-10-18 35 views
12

我有我已經設置爲包含在快速靜態文件的公共/目錄:瀏覽靜態文件目錄樹/表達

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

它有它

/public/images 
一個圖片目錄

而且有各種圖像的深層次的子樹。如果我放入圖像的完整路徑,則加載沒有問題。

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

當我剛去一個URL,例如

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

它只是給我的錯誤,這時候,它會找到一個非靜態路徑給出,但路徑不存在。

我該怎麼做才能讓靜態路徑中的所有目錄顯示類似於Apache顯示可導航目錄結構的方式?

回答

24

因爲什麼把

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

當你請求是上市請求的目錄,它似乎是靜態中間件只是提供的文件不是目錄。您必須使用

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

這會讓您請求您正在討論的URI。這裏

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

檢查細節:

+0

偉大的工作,謝謝!這不在當前的快遞指南中。還需要從2.4.4更新到2.4.7(對於有此問題的其他人) – RobKohr

+4

如果您希望在給定路徑時使用index.html文件,請在express.directory之前放置express.static。靜態會加載索引文件,以便在文件存在時不會發生目錄瀏覽。 – RobKohr