參考文檔:https://blog.csdn.net/u010977147/article/details/60956502
一 、設置靜態文件目錄
語法如下:
app.use(express.static(_dirname + '/public')); //設置靜態文件目錄
注: 將靜態文件目錄設置為項目根目錄 + ‘/public’,可以這樣寫
app.use(express.static(path.join(_dirname, 'public')));
運用path模版的join方法效果和前面是等價的。這里需要引用path模塊。
path.join():將多個參數組合成一個 path
二、靜態資源文件和動態資源文件是什么?
靜態資源文件:對於不同的用戶,內容都不會變化的文件。比如不管張三還是李四訪問百度,他們所看到的圖片、css、js文件都是一樣的,我們成為靜態資源文件;
動態資源文件: 對於不同用戶,做出不同反應的就是動態文件,例如張三李四登陸百度,百度會分別對他們顯示“張三,你好”、“李四,你好”,那么負責這些動態邏輯的文件就是動態文件了。
三、 app.use() 方法的作用
app.use : 用來給path注冊中間函數的。這個path默認是“/”,也就是處理任何請求,同時注意的是他會處理path下的子路徑,如果設置path為‘/hello’,那么請求路徑為‘/hello/’,'/hello/nihao','/hello/bye'這樣的請求都會交給中間函數處理的。
於是我們現在知道了app.use(express.static(_dirname + '/public'))是將所有請求,先交給express.static(_dirname + '/public')來處理一下。
四、express.static() 方法的作用
為了提供對靜態資源文件(圖片,css,js文件)的服務,請使用Express內置的中間函數express.static.
傳遞一個包含靜態資源的目錄給express.static中間件用於立即開始提供文件。 比如用以下代碼來提供public目錄下的圖片、css文件和js文件:
app.use(express.static('public'));
現在可以加載public目錄下的文件了:
比如: http://localhost:3000/image/jkk.png
通過多次使用 express。static中間件來添加多個靜態資源目錄:
app.use(express.static('public')); app.use(express.static('file'));
Express將會按照你設置靜態資源目錄的順序來查看靜態資源文件。
為了給靜態資源文件創建一個虛擬的文件前綴(文件系統中不存在),可以使用express.static函數指定一個虛擬的靜態目錄,如下:
app.use('/static', express.static('public'))
現在你可以使用‘/static’作為前綴來加載public文件夾下的文件了
比如: http:// localhost:3000/static/image/kitten.jpg
