我在節點應用程序中遇到與Express有關的急躁不一致的問題,在該應用程序中,由於URL重寫,我無法正確導航內置目錄呈現。它更容易與代碼解釋:ExpressJS在導航目錄時錯誤地重寫路徑
var express = require('express');
var app = express.createServer();
app.use("/public", express.static("/web/content"));
app.use("/public", express.directory("/web/content"));
app.listen(8888);
使用的/web/content
上面的內容尤伯杯簡單Express服務器,當你瀏覽到localhost:8888/public
顯示爲一個鏈接列表。因此,舉例來說:
..
index.html
header.jpg
js (folder)
css (folder)
從那裏,如果我點擊index.html
或header.jpg
它們顯示正確,但點擊任一文件夾將導航到(例如)localhost:8888/js
,即使鏈接顯然導致localhost:8888/public/js
。進一步檢查發現請求被髮送到正確路徑(/public/js
),但服務器返回301 - Moved Permanently
響應,然後將瀏覽器重定向到/js
,由於無法找到內容,該響應繼續顯示錯誤頁面。 (不,真的?)
嘗試請求這些文件夾下的特定文件(即:localhost:8888/public/js/main.js
)工作正常,並沒有相同的問題。
令人生氣的部分是,它在我的開發盒上做了一段時間,然後簡單地...停下來。不知道爲什麼。但是,嘗試部署時,生產服務器開始出現相同的問題,即使我無法再在我的開發環境中重現該問題。有誰知道爲什麼快遞似乎很想重寫我的網址到錯誤的東西?