我有一個應用程序,我正在開發使用快遞幾乎是一個純靜態站點,除了兩種形式發佈到服務器(聯繫表單和請求形成)。該網站大約有10個靜態頁面和兩個服務器端路徑來接受表單提交。大多數靜態快速應用程序與一個服務器端路由
我開始用jade,stylus和coffeescript開發應用程序的前端,使用grunt作爲開發服務器和構建工具來輸出所有這些的生產就緒版本(concat,min等)。靜態資產。
現在到兩個服務器端路由。我很好奇人們對這種情況的看法,其中應用程序包含90%的靜態HTML,只有一個或兩個服務器端路由。
到目前爲止,我認爲三個選項:
選項#1:純靜態的HTML和「外包」兩種形式,以一個像Wufoo項目
這將完全消除在快遞的需要生產。我可以繼續使用grunt來構建應用程序。但是,我不喜歡這種方法,因爲我不能完全控制表單提交。更何況,提交免費帳戶的表格數量是有限的。
選項#2:使用快遞和玉
我不喜歡這種方法,無論是因爲我將確定10點左右的服務器端的路線,所有這些都只是呈現玉模板純粹的服務器端。這不是矯枉過正嗎?我的路線將會充斥着app.get()
的呼叫,其中包含回撥中的單個res.render()
。另外,即使我們可能說毫秒,爲什麼在不需要它的頁面上包含中間件?
選項#3:#1和#2混合,使用express.static()中間件
對於這個選擇,我會使用類似grunt-express。這是我最喜歡的選擇,但是將客戶端和服務器端的玉石模板混合似乎有點「骯髒」。我的意思是,快速應用程序將有(兩個)服務器端路線,負責渲染一個玉器模板。通過調用express.static()
來調用這個指針,該指針指向一個包含從玉石編譯的靜態HTML文件的目錄,這對我來說似乎有點「骯髒」。我不知道爲什麼。
如果我選擇選項#3,我的grunt構建腳本將如何工作?最好是我希望構建輸出一個dist/
文件夾,其中包含一個生產準備快速應用程序,包括我的小小app.js
文件。
任何想法非常感謝!
一種選擇是使用另一個網絡服務器(比如Nginx)來獲取靜態資產,並且只保留Node.js用於動態內容。我在這裏談論這個方法:http://hectorcorrea.com/#/blog/running-a-node-js-web-site-in-production-part-2/53 –
我其實很喜歡這個想法,但不知道這兩個(前端和後端)如何共存,因爲我有多個運行在服務器上的快遞應用程序。我會閱讀鏈接的博客。你能提供詳細的答案嗎?謝謝:) – Feech