2012-07-07 34 views
6

Tôi đã viết một trang web trong node.js và express. Bây giờ tôi cấu hình lighttpd để sử dụng máy chủ Node.js với một thư mục con:Cách xử lý đường dẫn tương đối trong node.js/express?

$HTTP["url"] =~ "^/app/" { 
    proxy.server = ("" => ((
           "host" => "127.0.0.1", 
           "port" => 3000 
          )) 
       ) 
} 

Khi tôi mở http://localhost/app/ tôi nhận được lỗi 404 vì tôi đã viết một cái gì đó như thế này:

app.get('/', function (req, res){ 
    res.render('index'); 
}); 

Có cách nào tốt hơn là sửa đổi những dòng này như:

var relPath = '/app'; 

app.get(relPath + '/', function (req, res){ 
    res.render('index'); 
}); 

?

+5

'app.use ('/ app', app.router);' có thể thực hiện thủ thuật. –

+0

Nó thực sự là một mẹo, mặc dù tôi không chạy sau một proxy. – ebohlman

+0

Proxy không quan trọng miễn là nó không làm gián đoạn đường dẫn. –

Trả lời

4

Như Ryan nhận xét giải pháp là:

app.use('/app', app.router); 

Nếu bạn sử dụng ví dụ express.static hoặc express.favicon bạn phải nói cho app.use đường dẫn cũng:

app.use('/app', express.favicon(__dirname + '/public/images/favicon.ico')); 
app.use('/app', express.static(__dirname + '/public')); 

Hãy nhớ viết '/ app' trước mỗi liên kết nội bộ bạn đặt trong html của mình.

+0

tính năng này không hoạt động nữa trong Express 4.x – javiertoledos

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