角度组件路由器从URL中删除#

Angular Component Router Remove # from the URL

本文关键字:删除 URL 组件 路由器      更新时间:2023-09-26

我使用Angular 1.5与Angular New Router进行路由。我遇到了一个问题,从URL中删除#,以使它们对SEO友好。components文件夹中有两个视图,即first.html和second.html,它们是angular router的一部分,然后是第三个视图Navigation.html,它不是angular Routing的一部分。相反,它是一个单独的html。这些视图的链接在页面的标题中给出。前两个是Angular Views,第三个是Navigation.html(不是Angular Routing的一部分)。我已经通过使用$locationProvider.html5Mode(true)成功地从URL中删除了#标签。但在这样做之后,它无法导航到Navigation.html,而是将其重定向到First.html。这是一个非常简单的代码,使用Bootstrap、Grunt和Angular。我在GitHub上推了它。任何人都可以通过克隆看到这一点。我将非常感谢你。如果有更好的方法,也建议我。

https://github.com/kjanshair/Angular-New-Router-Example

我只想从URL中删除#,并能够导航到Navigation.html。

您所需要做的就是将$locationProvider添加到您的配置函数中,并在其中调用:$locationProvider.html5Mode(true);

angular.module('myapp',[]).
    config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
        $routeProvider.when().otherwise() # define routing
        $locationProvider.html5Mode(true);
    }]);