11

someone knows what "#!" Means. on the url?

I was working until then this appears,I had a "#" always in the url and would like to keep it that way. Currently routing is not working anymore,probably because of this url change.

It's part of a business project, i don`t want to change to html5Mode.

I tried to use:

$locationProvider.hashPrefix("");

Even correcting the url in this way routing is having problems

A. Pozzi
  • 123
  • 1
  • 1
  • 5
  • How do you do your routing ? if you're using `angular-route`, then when you loads your web, what's your URL looks like ? When this `#!` appears ? angular route doesn't work if it have no valid url like `#/report` – DennyHiu Dec 13 '16 at 00:57
  • For reference, here's a simple routing in angular http://plnkr.co/edit/dd8Nk9PDFotCQu4yrnDg?p=preview – DennyHiu Dec 13 '16 at 01:06

3 Answers3

9

Thats called hash-bang.

To fix this use :

    angular.module('yourApp', [])
    .config(['$locationProvider', function($locationProvider) {
        $locationProvider.hashPrefix('');
    }]);

Adding html5Mode would even get rid of the '#' in the url but if you refresh the page, then you would get a 404 error. This can be fixed by configuring your server a bit. For that you might want to check the nice little tutorials :

  1. https://scotch.io/tutorials/pretty-urls-in-angularjs-removing-the-hashtag
  2. https://www.theodo.fr/blog/2017/01/pretty-url-in-angularjs-and-loopback-drop-the/

There is another answer to the hashbang issue in stackoverlow :

Doing links like Twitter, Hash-Bang #! URL's

Community
  • 1
  • 1
onFuryRoad
  • 375
  • 5
  • 12
1

You can use html5Mode in your location provider.

$locationProvider.html5Mode(true);

more info https://scotch.io/tutorials/pretty-urls-in-angularjs-removing-the-hashtag

Danilo Velasquez
  • 451
  • 2
  • 11
0

Set html5mode true in your app.config

$locationProvider.html5Mode(true).hashPrefix('*');
rvchauhan
  • 89
  • 8