I am using angular, and my url always has a “!” (e

2020-02-12 02:14发布

For example:

http://localhost/#!/login.html

I don't need "!". How would I remove it?

eg:http://localhost/#/login.html

This is my router code :

  // Redirect any unmatched url
$urlRouterProvider.otherwise("/login.html");
$stateProvider.state('login', {
    url: "/login.html",
    templateUrl: "views/login.html",
    data: {pageTitle: "login", isLeft: false},
    controller: "LoginCtrl",
    resolve: {
        deps: ['$ocLazyLoad', function ($ocLazyLoad) {
            return $ocLazyLoad.load({
                name: 'myApp',
                files: [
                    'controllers/LoginCtrl.js'
                ]
            });
        }]
    }
});

I think Angular-ui-router might have a problem, but I can't find the solution.

Thanks!

3条回答
我只想做你的唯一
2楼-- · 2020-02-12 02:46

Hashbang Mode

Hashbang mode is a trick that AngularJS uses to provide deep-linking capabilities to your Angular apps. In hashbang mode (the fallback for html5 mode), URL paths take a prepended # character. They do not rewrite tags and do not require any server-side support. Hashbang mode is the default mode that AngularJS uses if it’s not told otherwise. A hashbang URL looks like:

http://yoursite.com/#!/inbox/all

To be explicit and configure hashbang mode, it needs to be configured in the config function on an app module

We can also configure the hashPrefix, which, in hashbang mode, is the ! prefix. This prefix is part of the fallback mechanism that Angular uses for older browsers. We can also configure this character.

To configure the hashPrefix:

angular.module('myApp', ['ngRoute'])
.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('!');
}]);
查看更多
孤傲高冷的网名
3楼-- · 2020-02-12 02:53
$locationProvider.hasPrefix = '!';

I think you are configured $locationProvider like this.Remove this to avoid the !

查看更多
贪生不怕死
4楼-- · 2020-02-12 02:57

app.config(function ($routeProvider, $locationProvider) {
            $locationProvider.hashPrefix('page');
$routeProvider.when("/home", {
                templateUrl: "templates/home.html",
                controller: "homecontroller"

            });

查看更多
登录 后发表回答