I have just noticed that I have an exclamation mark after a hash (#!) in all of my routes. I\'m not sure how and why I got them because earlier today I didn\'t have them.
Modify these 2 lines :
.config(function ($routeProvider) {
$routeProvider
to be :
.config(function ($routeProvider,$locationProvider) {
$locationProvider.hashPrefix('');
$routeProvider
Credit should go to : https://stackoverflow.com/a/41223197/1564146
You probably updated angular version from 1.5 to 1.6, because on 1.6, the angular team decided to change the default $location hash-prefix to '!'. Like @Skrew suggested, you can change that to '' with $locationProvider.hashPrefix('');
Here you can read about that.
Your function is missing a locationProvider and needs to specify html5Mode for the locationProvider. See https://docs.angularjs.org/api/ng/provider/$locationProvider. Instead of:
.config(function ($routeProvider) {
$routeProvider
.when('/', {
try:
.config(function ($locationProvider, $routeProvider) {
$locationProvider.html5Mode({
enabled:true
});
$routeProvider
.when('/',{
By default you also need to specify a base tag <base href="/">
in your index.html file.