【发布时间】:2015-09-14 15:00:05
【问题描述】:
我的问题很简单。想象一下,您有一个使用 Marionette/backbone 构建的项目,并且您有两个目标媒体:移动和桌面。有一个后备服务器,用 DJango(或 Ruby 等)编写。
如何组织项目,以便将其编译到移动设备并使其在桌面设备上运行?我的意思是,想象一下具有 url 参数的集合。将其设置为相对?到绝对,从零开始?
该项目已经有一个可行的布局,我可以使用 r.js 对其进行编译。差不多是这样的:
repo-root/
- src/
- assets/
- css/
- images/
- project-code/
- vendor/
- build.js
- config.xml (phonegap conf)
- index.html
- main.js
- tests/
- bower.json
- .gitignore
这是一个集合的例子:
define(function(require){
"use strict";
var Backbone = require("backbone");
var FeatureClass = require("atlas-backbone/models/FeatureClass");
return Backbone.Collection.extend({
url: "api/featureclasses",
model: FeatureClass
});
});
我的问题是如何组织它,以便它可以编译到移动设备并在桌面版本中运行。
【问题讨论】:
-
Collections 处理数据,它被设计为独立于展示(移动、桌面、平板电脑等)
-
@LeshaOgonkov:好的,当然。但是我应该如何定义它的 URL,如果它被设计为通过移动设备与远程服务器通信(绝对 URL,如:foo.com/api/featureclasses)并且应该在桌面机器的开发和生产中工作(相对 URL,如 api/featureclasses )?
-
本地模拟?我更喜欢使用相对路径来简化它,所以在本地你会得到
dev.local/api/foo,指向你的模拟服务器。您可以使用绝对路径,但是您需要以某种棘手的方式编辑您的hosts文件。 -
好的,太好了。你能举一些关于如何模拟它的例子吗?我有一个 dev django 服务器已经给了我回复。但我确实理解如何模拟它会更容易快速发展和分离两个世界的发展。
-
在开发模式下运行您的服务器并将您的请求指向
localhost:some_port,您可以编辑您的hosts文件以在您的域上使用别名(以防您需要域cookie 工作)跨度>
标签: django backbone.js marionette project-organization