如何在没有Web服务器的情况下运行Sencha Touch 2应用程序?

时间:2013-05-06 11:06:14

标签: webserver sencha-touch sencha-touch-2

有没有人知道如何在不安装Web服务器(如LAMP / XAMP)的情况下运行sencha touch 2应用程序。 (PS:我是Sencha Touch的新手)

我知道有一种方法 - 在Sencha Touch 2应用的app.json中包含phonegap's javascript文件。看起来像这样

"js":
    {
        "path": "cordova-2.5.0.js"  
    }

此后,示例应用程序在没有Web服务器的浏览器上运行。

  1. 还有其他方法吗?

  2. 如果没有网络服务器,添加phonegap js文件如何帮助运行sencha touch应用程序?

1 个答案:

答案 0 :(得分:3)

使用--allow-file-access-from-files --disable-web-security标志启动chrome也可以解决问题。

Sencha需要Web服务器,因为如果应用程序处于开发模式microloader,请在Ajax app.json请求var xhr = new XMLHttpRequest(); xhr.open('GET', 'app.json', false); 文件,并加载其他文件。你可以在

中看到这一点
  

../煎茶-SDK / mircroloader / development.js

文件包含以下代码 -

file://....

使用上述标记启动chrome时,即使使用{{1}} url scheme打开文件,chrome也允许发出ajax请求。

在使用sencha cmd压缩js / css后部署应用程序时,所有文件都捆绑在一个文件中。在这种情况下,您不再需要网络服务器。


<强>更新

来自白名单

的Cordova文档
  

Apache Cordova中的域白名单是一种安全模型,用于控制对外部域的访问,例如http://google.com。默认安全策略是阻止所有网络访问。然后,应用程序开发人员可以声明对特定网络域和子域的访问。

  

Widget Access specification中,该元素用于声明对特定网络域的访问。将来,Apache Cordova将把平台白名单实现抽象为W3C Widget Access规范。但是,现在每个平台都必须实现自己的域名白名单。

此外,W3C Widget Access不包含安全性和用户代理强制策略。它在XMLHTTPRequest中定义。

所以Cordova必不可少的是,在政策中添加了一个例外,允许使用白名单域访问应用域外的某些网络资源。