我已經閱讀了幾個答案,但尚不清楚如何使Express與多個視圖文件夾一起工作。使用Node.js/Express的多個視圖文件夾
比方說,快遞應用程序包含獨立的部分,在子文件夾進行組織:
app
+partA
+views
index.html
+partB
+views
index.html
然後我們設置每個文件夾視圖:
app.set('views', [__dirname + '/partA/views', __dirname + '/partB/views']);
但如何在第二個文件夾訪問index.html
?
在routes.js:
res.sendFile('index.html');
將始終發送部分A.
同時,我們也不能使用相對路徑:
res.sendFile('/partB/views/index.html');
將觸發錯誤:
Error : Failed to lookup view "/partB/views/index.html" in views directories "/partA/views" or "/partB/views"
那麼如何使這項工作?我知道通常的做法是將部件作爲視圖文件夾的子文件夾,但這不是一個選項。我不想爲每個部分重複的文件夾中/views
,/public
,/lib
等
設置意見爲每個請求似乎是一個矯枉過正...如果我將視圖設置爲'/'並不意味着一些安全問題?就像能夠訪問服務器文件一樣 – mens
通常的方式是在'views'(或'templates')文件夾中存儲模板。應用程序不通過'sendFile'直接發送模板,而是使用'res.render(template-name)'。因此,遠程用戶無法訪問模板。 –