我的靜態文件中間件的電話是由我的路線覆蓋,即使我在正確的順序運行它:路由被覆蓋中間件
首先,我把我的靜態文件,如:
app.use('/public/', express.static('/home/skerit/temp'));
app.use('/public/', express.static('/home/skerit/app/public'));
然後添加我的路線:
app.get('/:controller/:action', callback);
而現在,當我試圖讓/public/empty.txt執行路線。 當我刪除路線時,它工作得很好。
而且我確定它們按正確的順序發生。 (第一個app.use,然後app.get)
那麼這裏可能會出現什麼問題?
編輯:由於我說我正在執行他們在正確的順序,這裏有一些證據。 我添加簡單的日誌語句代碼的執行:
[debug] - [stages.js:186] Static middleware has been set! [debug] - [stages.js:191] Startin routes! [debug] - [routes.js:7] Setting controller routes [info] - [database.js:79] Database connection to default has been made [info] - [database.js:93] Stored procedures on MongoDB server default [info] - [database.js:120] Created connection to all datasources [debug] - [stages.js:202] Setting /:controller/:action
正如你可以看到:「靜態中間件已設置的第一次出現。只有這樣它纔開始設置其他路線。
[node.js/express.js可能的重複 - 如何app.router工作?](http://stackoverflow.com/questions/12695591/node-js-express-js-how-does-app-路由器工作) – josh3736 2013-04-22 21:15:01
...你可能在你的'app.use(... static)'之前定義了其他路由'我很確定我不是' – josh3736 2013-04-22 21:17:36
'。 – skerit 2013-04-22 21:28:09