Angular ngRoute突然将URL转换为编码字符#!/#%2F

时间:2017-01-29 09:17:40

标签: javascript angularjs ngroute

我的应用程序中的所有内容都正常工作,直到我尝试添加ngAnimate,ngMaterial和ng-image-gallery。 我不知道添加这些模块是否是问题的根源,但在问题发生之前我没有改变任何其他内容。

从那时起(即使我从app.js和index.html中删除了依赖项后),所有网址都会转换为编码字符......

在它看起来像之前:

http://.../app/index.html#/workshops

不是它转换为:

http://.../app/index.html#!/#%2Fworkshops

当然没有找到任何东西。导航无效,没有任何反应。

为什么现在编码的URL到底了?!即使只是运行index.html,网络服务器也会给我以下网址:

 http://.../app/index.html#!/

有没有人有同样的问题?为什么会那样?更重要的是:我该如何解决这个问题?!非常感谢提前。

我的路线配置:

    'use strict';

    angular.module('myApp').config(['$locationProvider', '$routeProvider',
    function($locationProvider, $routeProvider) {

    $routeProvider
    .when('/', {
        templateUrl : 'modules/start/views/start.html',
        controller: 'StartController'
    })  

    .when('/galerie', {
        templateUrl : 'modules/galerie/views/galerie.html',
        controller: 'GalerieController'
    })
    .when('/kontakt', {
        templateUrl : 'modules/kontakt/views/kontakt.html',
        controller: 'KontaktController'
    })
    .when('/workshops', {
        templateUrl : 'modules/workshops/views/workshops.html',
        controller: 'WorkshopsController'
    })  
    ;
    }]);

在这里我如何在导航中切换路线:

                <div class="navbar navbar-top hidden-xs">
                    <ul class="nav navbar-nav">
                        <li>
                            <a href='#/'>Start</a>
                        </li>                       
                        <li>
                            <a href='#/workshops'>Workshops</a>
                        </li>
                        <li>
                            <a href='#/galerie'>Galerie</a>
                        </li>
                        <li>
                            <a href='#/kontakt'>Kontakt & Buchung</a>
                        </li>
                    </ul>
                </div>

这是脚本的包含方式:

     <script src="bower_components/angular/angular.js"></script>
     <script src="bower_components/angular-route/angular-route.js"></script>
     <script src="https://use.fontawesome.com/936815fb51.js"></script>
     <script src="app.js"></script>     
     <script src="modules/config/routes.js"></script>
     <script src="modules/start/start.js"></script>
     <script src="modules/start/controllers/StartController.js"></script>
     ...

加成 控制台什么也没说。没有问题,没有错误。

1 个答案:

答案 0 :(得分:2)

Gosh,我刚刚找到答案......间接地,它与添加依赖项有关,因为我将使用的角度版本从1.58更改为1.61 - 我只是读到哈希前缀更改为&#39;!& #39;

回答问题的链接在这里: Angular Route - Extra # in URL

路由配置中的下一行使路由器像以前一样工作:

$locationProvider.hashPrefix('');

感谢Arjan Einbu在链接中回答了这个问题。这节省了我的一天。

相关问题