2013-05-17 71 views
1

是通過中間件預處理靜態資源(使用快遞)在生產環境中是一個好主意?根據我的理解,中間件堆棧可以按照每個請求的順序運行。那麼這是不是意味着預處理中間會在每次請求之後重新生成靜態資源(即some_styles.less - > some_styles.css)?如果是這樣,預先通過grunt.js等構建系統進行預處理並提供這些文件會更好嗎?我希望將css和js的最終呈現連接到一個文件並縮小。通過快遞中間件或通過構建系統預處理

另外,是否值得預渲染的模板(如翡翠)中的網頁HTML只有靜態內容?或者比它的價值更麻煩?

回答

3

處理CSS和JS預處理和縮小文件最簡單的方法是通過某種生成系統,是它的呼嚕聲,蛋糕等,還可能會提供一些性能優勢;至少可以減少服務器的工作量。

爲我的項目,我在我的Cakefile處理CSS和JS任務。這些通過運行構建任務來調用,並輸出到通過app.use("/res", express.static("RESDIR"))設置的靜態文件目錄。

至於預渲染HTML,它會提供一個性能優勢。除非這樣做非常複雜,否則我會繼續並預先呈現所有您可以輕鬆做到的事情。要做到這一點遠遠比簡單的做起來要簡單得多(如果你預計會有任何增長,那麼將來可能會有所影響)。

+0

非常感謝您的幫助。要清楚,中間件會每次都會重新生成?或者只有當文件被更改?我知道它給服務器徵稅,我只是好奇多少。 –

+1

沒有理由中間件將不得不爲每個請求執行生成;這隻意味着你看相關的文件,並將結果保存在內存中或最終寫入磁盤。除非您需要大規模擴展,否則中間件可以工作。隨着部署的方式提前做好每件事(它減少了在低內存/ CPU機器上的應用啓動時間)。 –