天天看點

nodejs配置靜态資源錯誤

踩了一個大坑,在nodejs配置靜态資源時,最開始是用到了這種方法,在本地打開時

app.use('/public',express.static('./public'))
           

然後發現死活擷取不了public下的檔案,在網上尋找了各種方法之後,終于解決了問題,解決代碼如下

app.use('/public',express.static(path.join(__dirname, 'public')))
           

記得要在頭部引入path檔案,

原理

這裡就要說到./與__dirname的差別,__dirname指向的總是執行JS檔案的檔案夾的絕對路徑位置,例如/code/app.js,__dirname就指向/code,具體路徑關系可以參考這篇文章,裡面講的很詳細 淺析 NodeJs 的幾種檔案路徑

經驗

在伺服器上調用路徑時,最好全部都采用相對路徑,除了require裡面的内容要使用絕對路徑外,其他都用相對路徑能保證在伺服器上少發生與路徑相關的錯誤