敲代碼須要一絲不苟,Node靜態化,ejs文件裏多了一條外聯下的Bug問題

這個Bug是昨天晚上遇到,去SF社區提了出來,估計是太晚了,沒人回答,今天早上兩個回答。css

第一我的回答主要是解決雙重回調,也怪我,我剛開始也覺得是雙重回調的問題,由於最近看的網上資料全是Promise和async/await解決回調問題。我想我真不會遇到了?其實不是。express

第二個大佬認真看了我貼的代碼,而後一步步在評論區裏溝通,最後說到了爲何css和頭像文件會在請求req裏出現,估計是個人靜態化問題。而後我就把注意力轉過來了,去看user.ejs,上來就發現了一個問題,我靜態路由是app.use("/avatar",express.static("./avatar"));,在ejs裏面傳參仍是要加上avatar這個虛擬路徑的,我沒加。 =-=,而後css和js腳本都是在public的,我直接靜態app.use(express.static("./public"));,這個意思就是當用戶無論訪問你這個網站的什麼東西,頁面,資源,接口等等,都會優先從你的本地的public文件夾裏先找,找的話就展現,找不到就繼續走下面的路由,因此這個前面就不用加虛擬路徑了,但是運行仍是報那個錯誤,avatar undfined,這位大佬也提到了我req裏爲何會有css請求啊,而後去看了public,我把jumbotron.css是放在css文件外面,靜態化以後至關於在根目錄,由於這個css裏就放了body的兩個樣式,當時沒多想放在直接放在public裏,沒有跟public的css文件放在一塊兒,而後我又去看了ejs裏這個css的外聯,只有這一個css文件發生了請求,那麼這個css的靜態化是失敗的, ,我老老實實把這個css放在css文件夾,改爲了 ,Bug解決,拍手。。。=-=app

估計是我一開始就在public下放着,因此我就直接"/",多是有的連接寫成是"/css"了。雖然不是什麼高深的bug,可是僅從Node的這一點報錯信息,也仍是須要慢慢來排查。async

相關文章
相關標籤/搜索