我想知道是否有可能爲node.js中的靜態資源請求(如果有任何此類區別)指定文件系統根目錄或文檔根目錄的子目錄。是否可以將文件系統根目錄和/或文檔根目錄設置爲文件系統的某個子目錄?
我知道我可以通過連接來自根的絕對路徑,但我想知道它是否可以在應用程序級別上完成。
我還沒有發現任何文檔支持它,但也許我忽略它。
編輯:我要指出,我不感興趣,在這一點上使用第三方庫。
我想知道是否有可能爲node.js中的靜態資源請求(如果有任何此類區別)指定文件系統根目錄或文檔根目錄的子目錄。是否可以將文件系統根目錄和/或文檔根目錄設置爲文件系統的某個子目錄?
我知道我可以通過連接來自根的絕對路徑,但我想知道它是否可以在應用程序級別上完成。
我還沒有發現任何文檔支持它,但也許我忽略它。
編輯:我要指出,我不感興趣,在這一點上使用第三方庫。
該API不允許您直接進行要求。你將需要使用字符串concat。
退房expressjs
http://expressjs.com/guide.html#configuration
具體
app.use(express.static(__dirname + '/public', { maxAge: oneYear }));
快遞/連接對這種使用情況 '靜態' 的中間件。還有其他較小的軟件包僅適用於靜態文件服務,但是,快遞很好,維護得很好。
謝謝您的回答,但我應該指定,我喜歡做沒有第三方圖書館。我想知道它是否可以在node.js中直接使用。如果沒有,我會假設* express *只是做同樣的串聯。 – user113716 2011-05-27 21:38:12
https://github.com/senchalabs/connect/blob/master/lib/middleware/static.js#L105-215 – Josh 2011-05-27 21:45:04
@Patrick,因爲代碼在github上可用,那麼是的,這是可能的。主要的是知道如何正確地爲這些資源提供服務。一個更好的選擇是看看像nginx這樣的東西,我將在這個週末看看自己的服務器。 – jcolebrand 2011-05-27 22:05:42
我試了下面的腳本與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');
});
這太糟糕了。在應用程序級別的全局設置下,似乎可以避免所有這些連接。 – user113716 2011-05-27 22:55:19
確實如此,但唉。 – jcolebrand 2011-05-27 22:57:03