2011-10-18 42 views
12

Tôi có một công/thư mục mà tôi đã thiết lập như chứa các file tĩnh trong nhanh:Duyệt tệp tĩnh cây thư mục trong Node.js/bày tỏ

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

Nó có một thư mục hình ảnh trong nó

/public/images 

Và điều đó có một cây con sâu của nhiều hình ảnh khác nhau. Nếu tôi đặt trong đường dẫn đầy đủ đến hình ảnh, nó tải không có vấn đề gì.

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

Khi tôi chỉ đi đến một url như

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

Nó chỉ mang lại cho tôi những lỗi mà nó mang lại khi nó cố gắng để tìm một con đường không tĩnh, nhưng con đường không tồn tại .

Làm thế nào tôi có thể làm cho nó để tất cả các thư mục trong đường dẫn tĩnh của tôi cho thấy một cái gì đó tương tự như cách Apache cho thấy cấu trúc thư mục điều hướng?

Trả lời

24

Bởi vì những gì bạn đang yêu cầu khi đặt

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

là một thư mục yêu cầu niêm yết, và có vẻ như rằng tĩnh middleware chỉ phục vụ các file không thư mục. Bạn phải sử dụng

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

Điều này sẽ cho phép bạn yêu cầu URI bạn đang nói đến.

+0

Làm việc lớn, cảm ơn! Đây không phải là hướng dẫn hiện tại. Cũng cần cập nhật từ 2.4.4 đến 2.4.7 (đối với bất kỳ ai khác có vấn đề này) – RobKohr

+4

Nếu bạn muốn sử dụng tệp index.html khi được cung cấp đường dẫn, hãy đặt express.static trước express.directory. Tĩnh sẽ tải tệp chỉ mục để duyệt qua thư mục sẽ không xảy ra khi tệp ở đó. – RobKohr

10

Đối Express 4 điều này có vẻ hơi khác một chút:

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

Kiểm tra ở đây để biết chi tiết:

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

+0

Nó cũng có phục vụ các thư mục con không? – Dinoboff

+0

Vâng, làm việc cho tôi. –

+0

tôi cũng có thể xem tệp không? –

Các vấn đề liên quan