我正在使用 NodeJS 和 Express 撰寫一個網站。使用 2 個路由引數指定鏈接后:
app.get('/game/:port/:player/', function(req, res) {
res.sendFile(path.join(__dirname, '/game/game.html'));
})
- 結果是一個空白的白頁。查看 DevTools,我看到了錯誤Uncaught SyntaxError: Unexpected token '<' game.js:1。看起來瀏覽器正在將 html 檔案解釋為 JavaScript 檔案!我認為這是因為瀏覽器試圖從而/game/(portnumber)/(playernumber)不是從獲取 js 和 css 檔案/game。并且 css 顯示為實際的 HTML 檔案:

但是,我只有 1 個路由引數的另一條路由作業正常!我對 Express 還是比較陌生,所以我不太了解獲取目錄的作業原理。
有沒有辦法在不手動指定每個包含 HTML 檔案的路徑的情況下修復此目錄錯誤?
uj5u.com熱心網友回復:
您可以使用express.static中間件來指定您的客戶端有權訪問的公共目錄:
https://expressjs.com/en/starter/static-files.html
app.use('/static', express.static('public'))
http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html
uj5u.com熱心網友回復:
這與 Express 沒有任何關系。它是基本的 URL 決議。
瀏覽器將請求/game/3561/2并取回一個 HTML 檔案
該檔案將告訴它加載./game.js它將決議到的內容
/game/3561/game.js(因為 URL 以.“從當前目錄決議路徑”開頭)。
那不是你的 JS 檔案的 URL,所以你會得到一個 HTML 檔案——哪里:player是game.js.
您需要在src屬性中寫入 JS 檔案的實際 URL 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391355.html
標籤:javascript 节点.js 表达
上一篇:JsRegex只允許字符出現一次
