我已經看到和利用的:node.js,express.js - 提供單個靜態文件的最簡單方法是什麼?
app.use("/css", express.static(__dirname + '/css'));
我不想從根目錄,只有一個文件,「ipad.htm」服務中的所有文件。使用express.js以最少量的代碼執行此操作的最佳方法是什麼?
我已經看到和利用的:node.js,express.js - 提供單個靜態文件的最簡單方法是什麼?
app.use("/css", express.static(__dirname + '/css'));
我不想從根目錄,只有一個文件,「ipad.htm」服務中的所有文件。使用express.js以最少量的代碼執行此操作的最佳方法是什麼?
fs.createReadStream(path).pipe(res);
res.sendFile(path_to_file);
是你所需要的;它會自動設置正確的標題並傳輸文件(它在內部使用與express.static
相同的代碼)。
一直在尋找這個約一個小時....這正是我需要的。謝謝! – 2013-03-29 02:14:32
我從這得到403s。如果你的文件夾在運行的JS文件之外,我必須做'res.sendfile(relativePath,{root:theDirectory})' – kumar303 2014-03-12 18:22:07
,我會向@ kumar303添加一些細節評論:你不能把「../」在relativePath中,但可以將其添加到目錄中。 res.sendfile(pic.png,{root:__dirname +「../../../ images /」}) – Rayjax 2014-05-28 08:46:37
app.use("/css/myfile.css", express.static(__dirname + '/css/myfile.css'));
'app.use(「/」,express.static(__ dirname +「/index.html」)) '給我一個404。 'app.use(「/」,express.static(__ dirname))'工作。 – Niklas 2013-07-25 12:15:16
這很奇怪,它確實對我有用。我有app.use('/',express.static(__ dirname +'/wwwroot/index.html'));我認爲他們app.use調用的順序確實有所幫助。所以請確保你沒有將它映射到其他地方,這是給404。 – 2013-07-31 03:24:04
我得到一些奇怪的303行爲,指向路徑加斜槓。看起來像靜態只應該在dirs上工作。 – 2014-01-29 08:25:44
我出版了一間小型圖書館,服務單一的靜態文件:https://www.npmjs.com/package/connect-static-file
npm install connect-static-file
var staticFile = require('connect-static-file'); app.use('/ipad', staticFile(__dirname + '/ipad.html'));
與express.static的主要區別在於,它不關心請求URL ,如果路線匹配,它總是服務於該文件。如果您將目錄命名爲「ipad.html」,它不會突然開始提供整個目錄。
您需要事先至少明確寫出「Content-Type」和「Content-Length」標頭。 – ebohlman 2012-07-13 22:02:30
另外,GZip壓縮將無法正常工作。 – 2017-02-03 13:53:09