来自url的SPA不在root(包括filename.aspx)路由和刷新

时间:2017-03-01 18:18:04

标签: asp.net angularjs angular-ui-router

我有一个SPA,我想使用路由进行ng-view。

我将代码包含在domain.com/folder/dashboard.aspx的页面中 这只是现有页面的一部分,我无法将其移动到其他地方。

当我使用路由/列表时,它会将我的网址更改为domain.com/folder/list/,但会破坏刷新页面的能力(并且因为dashboard.aspx不是默认页面而提供404,也不能它是)

如何将网址保留为domain.com/folder/dashboard.aspx/list

我确实尝试将我的路线设置为dashboard.aspx / list和其他各种类似的调整,但没有任何运气。

2 个答案:

答案 0 :(得分:2)

就像@Claies所说的那样,它应该在你的服务器配置中处理,只是在这里放弃我的路由配置,以防你还没有尝试过这个

var routeWithoutResolving = function (template: string, title?: string, style?: string) {
    var name;
    var slashIdx = template.indexOf('/');

    if (slashIdx !== -1) {
        name = template.substring(0, slashIdx);
        template = template.substring(slashIdx + 1);
    } else {
        name = template;
    }

    var templateUrl = '/folder/' + template + '.aspx/';

    return {
        templateUrl: templateUrl,
        title: title,
        style: style,
        area: _.capitalize(name),
        page: template,
        reloadOnSearch: false
    }
}

<强>用法

.when('/domain.com/folder/dashboard.aspx/list', routeWithoutResolving ('folder/dashboard.aspx'))

答案 1 :(得分:2)

我明白了。

您无法使用HTML5模式,您必须使用Hashbang。

我将路线设置为正常,/list/list/item 对于我的链接,我只使用了Dashboard.aspx#!/list/item/list

的完整网址

我还从html页面中删除了基本标签