提供靜態檔案
使用 Express 構建 Web 伺服器時,通常需要提供動態內容和靜態檔案的組合。
例如,你可能有 index.html 和 script.js,它們是儲存在檔案系統中的靜態檔案。
通常使用名為 public
的資料夾來擁有靜態檔案。在這種情況下,資料夾結構可能如下所示:
project root
├── server.js
├── package.json
└── public
├── index.html
└── script.js
這是如何配置 Express 以提供靜態檔案:
const express = require('express');
const app = express();
app.use(express.static('public'));
注意:配置資料夾後,index.html,script.js 和 public
資料夾中的所有檔案都將在根路徑中可用(你不能在 URL 中指定/public/
)。這是因為,express 查詢相對於配置的靜態資料夾的檔案。你可以指定虛擬路徑字首,如下所示:
app.use('/static', express.static('public'));
將使用/static/
字首提供資源。
多個資料夾
可以同時定義多個資料夾:
app.use(express.static('public'));
app.use(express.static('images'));
app.use(express.static('files'));
在提供資源時,Express 將按定義順序檢查資料夾。如果檔名相同,則將提供第一個匹配資料夾中的檔案。