2016-12-12 84 views
7

有人知道什麼「#!」手段。在網址上?AngularJS「#!」在網址

我一直在努力,直到出現這種情況,我總是在網址中加上一個「#」,並且希望保持這種方式。 目前路由不再工作,可能是因爲此URL更改。

這是一個商業項目的一部分,我不想改變爲html5Mode。

我試着使用:

$locationProvider.hashPrefix(""); 

即使糾正URL以這種方式路由有問題

+0

怎麼辦你做你的路由?如果你使用'angular-route',那麼當你加載你的網頁時,你的網址是什麼樣的?當這個'#!'出現?角度路由不起作用,如果它沒有像'#/ report'一樣的有效網址 – DennyHiu

+0

作爲參考,這裏是一個簡單的路由角度http://plnkr.co/edit/dd8Nk9PDFotCQu4yrnDg?p=preview – DennyHiu

回答

0

html5mode真正在你的app.config

$locationProvider.html5Mode(true).hashPrefix('*'); 
6

這就是所謂的哈希爆炸

要解決這一點:

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

添加html5Mode甚至會擺脫在URL中的「#」的,但如果你刷新頁面,那麼你會得到一個404錯誤。這可以通過配置你的服務器來解決。對於您可能要檢查的漂亮的小教程:

  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/

還有另一個答案hashbang問題stackoverlow:

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