【问题标题】:How to configure node.js routes in a cordova app如何在科尔多瓦应用程序中配置 node.js 路由
【发布时间】:2015-03-30 11:26:58
【问题描述】:

我正在开发一个 angular/cordova 应用程序,其中在从 Url 中删除 # 并刷新后,页面没有被获取并且我不断收到错误,例如 -

Cannot GET /home/index

如何配置 node.js 服务器为任何不匹配的路由返回 index.html?

【问题讨论】:

    标签: node.js cordova cordova-cli


    【解决方案1】:

    express 应该很简单:

    app.get('/foo', function (req, res) {
        res.render('foo');
    });
    app.get('/:bar', _checkAuth, function (req, res) {
        res.render(req.params.bar);
    });
    app.get('*', function (req, res) {
        res.render('index');
    });
    

    【讨论】:

    • 要包含在哪里?目前我的科尔多瓦应用程序正在节点服务器上运行。它有一个 hooks 文件夹来配置这些设置,但我不完全确定。
    • 这是服务器端代码。如果您使用的是 express,请看这里:expressjs.com/guide/routing.html
    • 我没有使用快递。 Mine 是一个 ionic 应用程序,其中路由由 angular 处理并默认在 nodejs 上运行。请查看我之前关于这个主题的问题,我得到了类似的回复,但不确定在哪里实施 - stackoverflow.com/questions/29343436/…
    • 使用 html5 模式需要在服务器端重写 URL。见:stackoverflow.com/questions/16569841/…
    • 我了解解决方案,没有问题。我正在苦苦挣扎的是将这段代码放在cordova应用程序中的什么位置?
    【解决方案2】:

    首先,您不必担心可能会修改 URL,因为用户在使用应用程序时无法更改 URL。但是,是的,如果您在任何 anchor 标记上提供了错误的 URL,$urlRouterProvider.otherwise('/') 会为您执行此操作。

    myApp.config(function($stateProvider, $urlRouterProvider) {
        $urlRouterProvider.otherwise('/')
    
        $stateProvider.state('home', {
            url: '/',
            controller: 'homeCtrl',
        })
    
        $stateProvider.state('p1', {
            url: '/p1',
            templateUrl: "templates/p1.html",
            controller: "p1Ctrl"
        })
        ...
    })
    

    我可以知道您的 index.html 页面中的内容是什么吗?

    【讨论】:

    • 我也计划在台式机上使用相同的应用程序,以便用户可以共享链接并被定向到该页面本身。 index.html 是我的应用程序中通常的默认入口点,带有头部、主体标签和引用等。
    • 问题不在于角度,而在于 url 重写。所以我想这些更改将在服务器上完成。
    • 我不确定为什么它不起作用。除非您对节点进行了一些更改?只是一个意见,理想情况下,在整个应用程序中没有改变的任何东西都必须放在 index.html 中,然后所有模板都将放在 ion-nav-view 中。因此,如果 URL 输入无效,您可以将用户带到其他模板,告诉用户“未找到 404 页面”或其他内容。
    • 我想把用户带到同一个页面,但是由于路径不可用(由于 html5mode 设置),必须在服务器上进行重写。
    猜你喜欢
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多