踩了一個大坑,在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裡面的内容要使用絕對路徑外,其他都用相對路徑能保證在伺服器上少發生與路徑相關的錯誤