到达AngularJS驱动的站点时,路由到/而不是实际链接

时间:2014-03-20 14:49:19

标签: angularjs angularjs-routing

我有一个使用AngularJS构建的网站。我使用$ routeProvider来定义一堆路由。当我在网站上时,它们都工作正常。我们采取以下措施: rooturl.com#/服务/服务名

当网站已经打开时,在&#34;#/&#34;的主页上,然后一切正常,它会路由到rooturl.com#/ services / myservicename并加载正确的内容。< / p>

现在,假设我打开一个新的浏览器,将rooturl.com#/ services / myservicename粘贴到地址栏中,我会访问我的网站,但是我被转到了#34; /&#34;而不是rooturl.com#/ services / myservicename。

它与此基本相同: AngularJS routes with parameters in path not loading in HTML5 mode when going directly to URLs ...除了我没有这一行,所以我不确定关于$ locationProvider文档的讨论是否适用于我?

$locationProvider.html5Mode(true);

此外,我在公司内部网上。我将无法访问服务器。在我的角度网站的代码中,我可以做任何客户端的事情,允许用户在地址栏中输入rooturl.com#/ services / myservicename,并始终到达该路线吗?

请注意确定哪个代码对答案更重要,但这是我在应用程序定义中的.config。其后的其余代码是控制器和服务。

app.config(function($routeProvider){

$routeProvider
    .when('/',
        {
            templateUrl: 'app/partials/home_tpl.html',
            controller: 'HomeCtrl'
        })
    .when('/support/:subject',
        {
            templateUrl: 'app/partials/support-process.html',
            controller: 'SupportProcessCtrl'
        })
    .when('/support/:subject/:topic',
        {
            templateUrl: 'app/partials/support-process.html',
            controller: 'SupportProcessCtrl'
        })
    .when('/projects',
        {
            templateUrl: 'app/partials/project_list_tpl.html',
            controller: 'ProjectsCtrl'
        })
    .when ('/site-help',
        {
            templateUrl: 'app/partials/site-help.html'
        })
    .otherwise(
        {
        templateUrl: 'app/partials/404.html'
        })
});

1 个答案:

答案 0 :(得分:0)

html5模式为true允许您省略路线中的#。

看起来您可能错过了网址的斜杠。

rooturl.com#/服务/服务名

应该是

rooturl.com /#/服务/服务名