2014-04-09 11 views
6

Tôi có một máy chủ nodejs đang chạy với phía máy khách được đóng gói trong một thư mục máy khách để quản lý cấu trúc thư mục cho index.html dễ dàng. Sau đó, các liên kết và tập lệnh sẽ không tải được vấn đề gì.Nodejs Index.html Tải nhưng Liên kết & Tập lệnh 404

client folder 
    /index.html 
    /style.css 
    /script.js 
closer folder 
    /closure 
    /etc. 
app.js 
package.json 
utility.js 

Trong app.js tôi nộp Tôi có một bình thường

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

và khi tôi chạy và đi đến cổng host nội bộ tải tập tin, nhưng khi tôi mở chrome console, tôi thấy rằng tệp index.html không thể tải bất kỳ tập lệnh nào không tìm thấy lỗi 404. Tôi nhận thấy rằng trong rất nhiều ứng dụng nhanh có vẻ là một mô hình phổ biến của một cái gì đó dọc theo dòng của

this app.set('views', __dirname + '/client'); 

this app.use(express.static(__dirname + "./client")); 

this app.use('client', express.directory('client')); 

nhưng tôi không thấy một lời giải thích về sự khác biệt giữa app.use và app.set, cũng không một lời giải thích tốt, điều tốt nhất mà tôi có thể tìm được

app.set ('views', __dirname + '/ views'): Sử dụng ./views như là mặc định đường dẫn cho các mẫu client-side

từ Alex Young's article nhưng ngay cả điều này là một chút thưa thớt và khô cho tôi, tôi hy vọng cho một chút sâu hơn của một lời giải thích là tại sao các tập tin chỉ mục có thể không thể tải một liên kết trên cùng một cấp độ thư mục như nó.

<link rel="stylesheet" type="text/css" href="style.css" /> 

Tôi xem xét vấn đề này và tôi không thể tìm thấy sự cố.

Trả lời

5

Từ câu trả lời Express-js can't GET my static files, why? tôi muốn đề nghị:

app.use("/client", express.static(__dirname + '/client')); 

này là cần thiết vì bạn:

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

là chỉ giải quyết những gì sẽ xảy ra khi một người nào đó đi vào / và nói index.html rằng nên được phục vụ. Điều đó một mình không phục vụ bất cứ điều gì khác.

-1

chỉ cần chạy máy chủ của bạn từ thư mục gốc của dự án của bạn. sẽ khắc phục sự cố vì bạn đã sử dụng địa chỉ tương đối.

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