使用express.js的靜態文件我想將服務index.html和/media子目錄作為靜態文件。索引文件應該在/index.html和/URL處提供。我有web_server.use("/media", express.static(__dirname + '/media'));web_server.use("/", express.static(__dirname));但第二行顯然服務于整個__dirname,包括其中的所有文件(不只是index.html和media),我不想要。我也試過了web_server.use("/", express.static(__dirname + '/index.html'));但訪問基本URL /然后導致對web_server/index.html/index.html(雙index.html組件)的請求,當然這會失敗。有任何想法嗎?順便說一句,我可以在Express中找到關于這個主題的絕對文檔(static()+它的參數)......令人沮喪。文檔鏈接也是受歡迎的。
3 回答

MYYA
TA貢獻1868條經驗 獲得超4個贊
express.static()
期望第一個參數是目錄的路徑,而不是文件名。我建議創建另一個子目錄來包含你的index.html
并使用它。
在Express 文檔中提供靜態文件,或更詳細的serve-static
文檔,包括服務的默認行為index.html
:
默認情況下,此模塊將發送“index.html”文件以響應目錄上的請求。要禁用此設置false或提供新索引,請按首選順序傳遞字符串或數組。

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
在最新版本的express中,不推薦使用“createServer”。這個例子對我有用:
var express = require('express');
var app = express();
var path = require('path');
//app.use(express.static(__dirname)); // Current directory is root
app.use(express.static(path.join(__dirname, 'public'))); // "public" off of current is root
app.listen(80);
console.log('Listening on port 80');
- 3 回答
- 0 關注
- 858 瀏覽
添加回答
舉報
0/150
提交
取消