AngularJS: Como remover #! / (Prefixo bang) do URL?
Eu já fiz$locationProvider.html5Mode(true);
Mas isto não está funcionando. Sempre que eu acessohttp://example.com
vai parahttp://example.com/#!/
. O código é fornecido aqui:
var myApp = angular.module('myApp', ['ui.router', 'ui.bootstrap']);
myApp.config(['$qProvider', function ($qProvider) {
$qProvider.errorOnUnhandledRejections(false);
}]);
myApp.config(function($stateProvider, $urlRouterProvider,$locationProvider) {
// For any unmatched url, redirect to EXTRANET home page
$urlRouterProvider.otherwise('/');
// Now set up the states
$stateProvider
.state('listrole', {
url: "/list-role",
views: {
'main-content': {
templateUrl: rootUrl+ 'views/main.html',
controller: 'rolesCtrl'
}
}
})
$locationProvider.hashPrefix('');
$locationProvider.html5Mode(true);
});
Atualizar Eu adicionei$locationProvider.hashPrefix('');
tão bem, mas não há diferença. Além disso, deixe-me dizer que estou inserindo o endereço na barra de endereços e pressionando Enter. Estou fazendo certo? como o navegador descobrirá que não precisa atualizar do servidor?
Atualização # 2
Idealmente, quero URL comohttp://example.com
ehttp://example.com/#!/list-role
parahttp://example.com/list-role
. Agora mesmohttp://example.com/list-role
dá 404
Atualização # 3
Estou usando o proxy nginx, se isso ajudar.
Atualização # 4
Cache apagado. Agora eu posso verhttp://example.com
ao invés dehttp://example.com/#!
mas aindahttp://example.com/list-role
dá 404