【问题标题】:Removing # from AngularJS Url when using ngroute使用 ngroute 时从 AngularJS Url 中删除 #
【发布时间】:2015-04-17 12:17:26
【问题描述】:

Angular 新手在这里。我正在构建一个简单的站点,该站点使用ngRoute 模块将模板加载到索引页面中。到目前为止一切进展顺利,我决定最好在加载每个模板时从 URL 中删除丑陋的 #。

我想从 http://localhost/angularWebapp/#/home 转到 http://localhost/angularWebapp/home

这是我的链接:

<li><a href="/home">Home</a></li>
<li><a href="/about">About</a></li>

这是我的路线:

app.config(['$routeProvider', '$locationProvider',  function ($routeProvider, $locationProvider) {

        $locationProvider.html5Mode(true);
        $routeProvider
                .when("/home", {templateUrl: "partials/home.html", controller: "PageCtrl"})  //Home
                .when("/about", {templateUrl: "partials/about.html", controller: "PageCtrl"}) //About
                .otherwise("/404", {templateUrl: "partials/404.html", controller: "PageCtrl"}); //404
    }]);

但是当我加载我的页面时,我什么也得不到,而是在控制台中看到这个错误:

错误:[$location:nobase] http://errors.angularjs.org/1.3.15/$location/nobase

我阅读了错误链接,它说我需要一个基本标签,但我将它添加到我的标题中,不幸的是它仍然显示错误:

<base href="AngularWebApp/">

然后我得到这个错误:

错误:[$compile:ctreq]http://errors.angularjs.org/1.3.15/$compile/ctreq?p0=ngInclude&p1=ngInclude

任何帮助都会很棒,谢谢。

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    &lt;Base&gt; 是基本 url,它与 Angular 无关。

    <base href="http://www.example.com/page.html">
    

    您也可以通过包含一个额外的参数来关闭它。

    $locationProvider.html5Mode({
        enabled: true,
        requireBase: false
    });
    

    【讨论】:

      猜你喜欢
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多