這太荒謬了,但我在一個非常毫無意義的代碼情況下被困了好幾天。
我不能在我的 nodejs 服務器上加載 css,影像。
我嘗試了很多東西(express.static 等),但似乎沒有任何效果。
你能幫助我嗎 ?
應用程式.js
const express = require('express')
const app = express()
const port = 3000
app.listen(port, () => {
console.log(`app running on port ${port}`)
})
app.use((req, res, next) => {
res.sendFile(__dirname "/index.html");
})
索引.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Découvrez ma newsletter pour acquérir les bases du marketing digital et du growth. Zennit est une agence Growth spécialisée en scraping et génération de leads.">
<title>Agence Growth - spécialité scraping et leads generation</title>
<link rel="icon" type="image/png" href="assets/images/favicon.png" />
<link rel="stylesheet" href="./assets/css/web_version.css">
<link rel="stylesheet" href="./assets/css/mobile_version.css">
<link rel="stylesheet" href="./assets/css/tablet_version.css">
</head>
檔案結構

謝謝您的幫助 :)
uj5u.com熱心網友回復:
assets要將您的目錄靜態服務器為/assets,您需要這樣的東西
app.use("/assets", express.static(__dirname "/assets");
這意味著任何請求/assets/*都將從您的assets目錄中提供靜態檔案,例如
<link rel="stylesheet" href="/assets/css/web_version.css" />
<img src="/assets/images/some-image.png" />
<script src="/assets/js/some-frontend-script.js"></script>
您還index.html為每個請求提供服務。將其更改為以下內容,僅用于GET /或GET /index.html
app.get(["/", "/index.html"], (req, res) => {
res.sendFile(__dirname "/index.html");
})
我建議保留所有靜態檔案,包括index.html在一個目錄中以靜態服務。例如,使用此目錄結構
app/
├─ public/
│ ├─ assets/
│ │ ├─ css/
│ │ ├─ js/
│ │ ├─ images/
│ ├─ index.html
├─ app.js
├─ package.json
你所需要的只是
app.use(express.static("public"))
根本不需要res.sendFile()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/444654.html
