2013-06-27 11 views
17

Czy ktoś wie, dlaczego wersja 1.1.5 automatycznie dodaje hashtag do adresów URL i jak to wyłączyć? IMO to jest brzydko wyglądające. Zdarza się, gdy masz adres URL, który nie kończy się ukośnikiem. (Nie używam tras ani nic w tym stylu).AngularJS 1.1.5 - automatyczne dodawanie znacznika hashowania do adresów URL

Więc tak:

http://my.website.com/about 

staje

http://my.website.com/about#/about 

i tak:

http://my.website.com/about.html 

staje:

http://my.website.com/about.html#/about.html 

ale to:

http://my.website.com/about/ 

nie ma tego problemu.

+0

w jaki sposób ustawiasz lokalizację? Wygląda na to, że używasz $ location.path ("about.html"); –

+0

@moderndegree Nie używam żadnych tras. Nie używam $ locaton. To nie jest aplikacja, tylko kątowe kontrolery na standardowej stronie internetowej. Ścieżka jest ustawiana przy użyciu rzeczywistych zakotwiczeń i pełnych obciążeń strony. –

+3

Widzę również ten problem: żaden z mojego kodu nie ustawia położenia $ (mam punkty przerw wszędzie, gdzie go dotykam i one nie uderzają), a problem nie występuje z kątowym 1.1.4, więc wydaje się, że to jest struktura robi – jssebastian

Odpowiedz

25

doświadczyłem tego problemu dopiero drugi dzień. Rozwiązałem go, włączając tryb HTML5 dla $locationProvider. Zobacz Docs for $location - HTML5 ModeUpdated link for $location - HTML5 Mode.

Powinno to wyglądać mniej więcej tak:

.config(['$locationProvider', function($locationProvider){ 
    $locationProvider.html5Mode(true).hashPrefix('!'); 
}]); 
+4

Uratowałeś mi życie. Mieli wziąć moje kciuki! –

+2

Haha. Cieszę się, że możesz trzymać kciuki na kolejny dzień. Ułatwia wciskanie spacji. Alto, mój lewy kciuk jest prawie bezużyteczny podczas pisania. Więc niech wezmą kciuk, jeśli zażądają tego w przyszłości :) – EnigmaRM

+4

Wprowadza to jednak nowy problem, który polega na tym, że zwykłe kotwice przechodzące na inną stronę zamieniają się w linki wypychane w historii, a strona nie idzie nigdzie. To jednak można rozwiązać, tworząc swoje linki 'target =" _ self "'. Robienie czegoś takiego jak '$ ('[href]'). Attr (" cel "," _self ")' rozwiązuje ten problem. Jeśli możesz dodać coś do swojej odpowiedzi, będę twoim najlepszym przyjacielem. –

1

w $ routeProvider ustawić tryb HTML5 tak prawdziwe, jak po

$locationProvider.html5Mode(true); 

I w sekcji head strony dodaj następującą linię

<base href="/">