这与我在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');
答案 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服务器应该只是开发环境中的问题。