3
我有一個服務器,它通過中間件幾乎全部路由來檢查是否已登錄,但只適用於路由。我還希望它可以在public
目錄中使用靜態文件。我會怎麼做呢?在ExpressJS中限制對靜態文件的訪問
更新:最好不要擔心保護/public
文件夾中的內容,因爲express會提供res.download(...)
功能。 Example on the Express.JS GitHub page
我有一個服務器,它通過中間件幾乎全部路由來檢查是否已登錄,但只適用於路由。我還希望它可以在public
目錄中使用靜態文件。我會怎麼做呢?在ExpressJS中限制對靜態文件的訪問
更新:最好不要擔心保護/public
文件夾中的內容,因爲express會提供res.download(...)
功能。 Example on the Express.JS GitHub page
澄清靜態文件也是通過使用中間件來表達的服務器使用express.static
中間件。從理論上講,你可以在中間件之前包含中間件來處理安全性。除了靜態中間件的想法之外,您只能從公開以來使文件夾public
靜態可用。
您可以在此處找到static。您可以重寫它以允許您向其中注入中間件。
或者你可以自己寫一個天真的靜態文件路由器。
您是否曾嘗試在靜態中間件之前在中間件中注入自己的安全日誌。
app.use(security);
app.use(express.static(dirname + '/public'));
對於我的計劃我將'public'文件夾重命名爲'static',並在名爲'public'的文件夾中創建一個新文件夾。我想讓中間件在「靜態/公共」文件夾中提供任何文件,而無需登錄,以便我可以使用css等登錄表單。我要查找如何獲得路線,但是如果你知道它離開你的頭頂並在這裏發佈,它可能會節省一些時間。謝謝你的幫助! – Stephen 2011-04-16 17:09:20
@Stephen'express.static(dirname +'/ static/public')'會使這些靜態。然後,您可以實現類似於'static'的中間件以用於'安全登錄靜態' – Raynos 2011-04-16 17:28:33