我有一个应用程序,我正在开发使用快递几乎是一个纯静态站点,除了两种形式发布到服务器(联系表单和请求形成)。该网站大约有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