我正在使用 Backbone.js 构建一些简单的编辑器,我希望能够将它们作为应用程序分发给用户,以便以主要客户端的方式编辑内容(即,我不希望用户不得不做设置诸如 MySQL 或 Apache 之类的东西)。
所以我在想象这样一个场景:
- 用户下载 .zip 文件
- 在结果打开的文件夹中,用户单击 index.html
- 在浏览器中打开
- 主干应用程序启动,将数据存储在
localStorage
- 然后用户可以导出为 CSV。
信不信由你,这将解决我的问题:我想帮助用户在浏览器中编辑数据,然后以熟悉的格式将其取回(例如,CSV 可以加载到 Excel 中)。
而且我想在不强迫他们配置服务器的情况下这样做。看起来这在 HTML5 堆栈中几乎是可能的。但是,在至少一个浏览器(Chrome)中,这不起作用,因为我收到这样的错误:
XMLHttpRequest cannot load file:///users/me/project/data/Appdata.json. Origin null is not allowed by Access-Control-Allow-Origin.
(奇怪的是,我在 Firefox 中没有收到该错误,并且.js
or.json
文件加载正常。)
所以在这一点上,在我看来,让这些用户使用某种本地服务器来提供 Backbone 接口是没有办法的。
因此,我试图弄清楚如何构建一个可分发的跨平台可执行文件,以允许我的用户启动 Flask 服务器。(我希望为 Backbone.js 应用程序构建一个 REST 后端。)
这是一厢情愿吗?我假设我可以让相关人员安装 Python。
这是可行的吗?似乎有很多方法可以打包 Python 程序,(pyinstaller?py2exe?...)所以我想我会在这里问一下,以防有人知道我想到的堆栈的解决方案。
蒂亚!