提供靜態檔案

使用 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 將按定義順序檢查資料夾。如果檔名相同,則將提供第一個匹配資料夾中的檔案。