2011-05-27 76 views
2

我想知道是否有可能爲node.js中的靜態資源請求(如果有任何此類區別)指定文件系統根目錄或文檔根目錄的子目錄。是否可以將文件系統根目錄和/或文檔根目錄設置爲文件系統的某個子目錄?

我知道我可以通過連接來自根的絕對路徑,但我想知道它是否可以在應用程序級別上完成。

我還沒有發現任何文檔支持它,但也許我忽略它。


編輯:我要指出,我不感興趣,在這一點上使用第三方庫。

回答

2

該API不允許您直接進行要求。你將需要使用字符串concat。

+2

這太糟糕了。在應用程序級別的全局設置下,似乎可以避免所有這些連接。 – user113716 2011-05-27 22:55:19

+0

確實如此,但唉。 – jcolebrand 2011-05-27 22:57:03

3

退房expressjs

http://expressjs.com/guide.html#configuration

具體

app.use(express.static(__dirname + '/public', { maxAge: oneYear })); 

快遞/連接對這種使用情況 '靜態' 的中間件。還有其他較小的軟件包僅適用於靜態文件服務,但是,快遞很好,維護得很好。

+0

謝謝您的回答,但我應該指定,我喜歡做沒有第三方圖書館。我想知道它是否可以在node.js中直接使用。如果沒有,我會假設* express *只是做同樣的串聯。 – user113716 2011-05-27 21:38:12

+0

https://github.com/senchalabs/connect/blob/master/lib/middleware/static.js#L105-215 – Josh 2011-05-27 21:45:04

+0

@Patrick,因爲代碼在github上可用,那麼是的,這是可能的。主要的是知道如何正確地爲這些資源提供服務。一個更好的選擇是看看像nginx這樣的東西,我將在這個週末看看自己的服務器。 – jcolebrand 2011-05-27 22:05:42

0

我試了下面的腳本與nodejs,效果很好。它將當前路徑作爲文檔根目錄服務。

app.js

var http = require('http'); 
 
var express = require('express'); 
 
var app = express(); 
 
app.use(express.static('./')); 
 
var server = http.createServer(app); 
 
server.listen(8080,'127.0.0.1',function() { 
 
    console.log('listen to 127.0.0.1:8080'); 
 
});

參考這裏: http://expressjs.com/starter/static-files.html

相關問題