如何在cordova应用程序中配置node.js.

时间:2015-04-02 10:45:41

标签: angularjs node.js cordova ionic-framework cordova-cli

这与我在cordova /离子应用程序中更改node.js配置的问题有关 - How to configure node.js routes in a cordova app

我没有得到满意的答案。我还在他们的博客上与几个cordova /离子家伙聊天,但他们提到在这种情况下无法通过使用express配置node.js,也没有任何关于如何完成它的线索。

所以,我的问题是,在使用cordova /离子应用程序时,是否可以做一些事情,比如更改node.js服务器中的默认端口或url重写?

很想知道你们的想法。

阐述更多 -

假设我有几条路线 -

http://localhost:6001/#/home/index
http://localhost:6001/#/content/index

由于我不想在URL中使用哈希,我在我的应用程序的配置部分添加了这个 -

$locationProvider.html5Mode(true);

哪个工作正常,网址不显示'#',但在浏览器刷新时,现在我收到此错误 -

Cannot GET /home/index

这就是我需要在服务器上完成URL重写的原因,我似乎无法弄明白。

这些是我在app.js中的路线 -

.state('home', {
            abstract: true,
            url: "/home",
            templateUrl: "app/home/home.html"
       })

.state('home.index',{
       url: "/index",
       views: {
           "index" : {
                      templateUrl: "app/home/index.html"
                     }
              }
       })

 $urlRouterProvider.otherwise('/home/index');

1 个答案:

答案 0 :(得分:0)

正如我们在聊天中讨论的那样,Cordova_CLI项目使用固定服务器通过cordova serve(或ionic serve)进行快速部署。此节点服务器不使用express或其他插件来处理路由,它使用[cordova-lib][1]项目中的脚本。

为此开发服务器提供的脚本不考虑URL重写,因此如果不修改此脚本,html5Mode将无法正常工作。它可以是一个简单的分支,就像替换do404函数逻辑而不是将filePath设置为/index.html

另一个选项是运行单独的Web服务器(node + express或任何其他),并在项目中包含ionic / cordova脚本。

理想情况下,生产应用程序将针对公共服务器运行,而Cordova_CLI服务器应该只是开发环境中的问题。