javascript - 使用 ngroute 时从 AngularJS Url 中删除 #

标签 javascript angularjs

这里是 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/ $位置/nobase

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

<base href="AngularWebApp/">

但是我收到了这个错误:

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

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

最佳答案

<Base> 是基本 url,与 Angular 无关。

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

您还可以通过包含额外参数来关闭它。

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

关于javascript - 使用 ngroute 时从 AngularJS Url 中删除 #,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29698996/

相关文章:

javascript - JS Canvas 在各个方向上调整大小

javascript - FullPage.js 溢出 : hidden doesn't work on my body

javascript - 如何使用 javascript 中的 onchange 函数显示多张图片?

java - 使用 Ajax 从 Servlet 中的 doGet 获取参数

javascript - 如何使下面的方法从构造函数返回所有参数

javascript - 如何使用 JavaScript 中的函数最好地从数组内部返回记录

javascript - AngularJS Google 动态标题仅不显示在主页上

angularjs - 使用 yeoman 设置的 AngularJS 项目的路由问题

javascript - AngularJS 双向绑定(bind)

angularjs - 错误 : No module: ngRoute when trying to implement routing in angularjs