在编写 Backbone 应用程序时,单独开发它实际上很有意义。换句话说,如你所说,将其开发为纯html+css+js 应用程序。
这样做有很好的理由:
部署
考虑何时部署应用程序。在某些时候,您肯定会想要部署应用程序的一些模块化组件。这可能是负责为您的客户提供 json 的后端服务,也可能是对 UI 的调整。无论是哪种情况,最好能够独立部署它们中的每一个。
模块化
能够在幕后使用一些 Rails 魔法来帮助开发您的 UI,这听起来很有吸引力。但是,请考虑项目的模块化。
IMO,Backbone(或任何 AJAX 应用程序)很漂亮。美妙之处在于 UI 代码实际上与后端的实现无关。它可以与 PHP/JAVA/RAILS/PYTHON/YOU-NAME-IT 服务器通信,但它仍然无关紧要。也就是说,如果您正在实现一个 RESTFUL 服务器。事实上,UI 代码可以放在只提供静态内容的 NGINX 服务器上,它仍然可以完美运行。这实际上是你想要的。您的 UI 代码在任何时候(在开发或生产期间)都不应了解后端的框架或后端支持的任何工具。在 Backbone 项目中引入不必要的依赖是犯罪行为。
想象有一天,当您认为适合迁移到不是 Rails 的不同架构时。如果有任何依赖关系,那将是一场噩梦。而是拥有一个完全独立于后端实现的 UI。
包装
您提到您将使用 PhoneGap 来打包您的应用程序。这可能是您的项目应该独立的最大原因。如果您打算将应用程序提交给 Apple,那么您将无法从服务器加载 js。所有脚本必须打包到必须是独立的应用程序中。
最后但并非最不重要的一点是,回答您有关“其他方法”建议的问题。这是相当模糊的,所以我不确定这个建议是否会有所帮助,但我想向您指出一些有助于组织 Backbone 项目并让您的生活更轻松的资源。
使用 RequireJS 的骨干网
我认为这是使用 Backbone 的最佳方式。RequireJS让您可以在 js 文件中指定依赖项,就像在编译语言中导入一样,这在组织 Backbone 项目并将代码分解为更小的模块时有很大帮助。requireJS 提供的优化工具还可以让您将所有 javascript 文件压缩到一个文件中。如果您想将项目打包到 PhoneGap 中,我相信这会派上用场。
下划线
您提到使用 HandleBar。但是,我建议您查看下划线的模板引擎,该引擎的灵感来自 RoR 的模板。并且假设您对使用 Rails 非常满意,那么下划线模板引擎可能正是您正在寻找的。