angularjs 確實好用, 但是每次訪問angular的 資源的時候url 后面總是帶個#號讓人略顯不爽.
<pre>http://localhost:7160/boss/index.html#/auth/login</pre>
以下辦法可以教你去除url后面的符號 變成干凈整潔的url
以上特性都建立在html5 history上面, 具體參考這個(http://diveintohtml5.info/history.html)
簡單來說可以使用javascript修改地址欄路徑假夺,而不刷新頁面剧腻。
<pre>http://localhost:7160/boss/auth/login</pre>
html5mode
$locationProvider --> html5Mode
在 angularjs 中 只需要開啟html5Mode的模式 就可以使用這個特性 位置是在路由配置的地方
<pre>
$locationProvider.html5Mode(true)
</pre>
<base>
<pre>
<head>
<base href="/項目名/index.html">
</head>
</pre>
在head中寫入base 標簽 這里采用根路徑定位當前index.html
關于base配置可參考angularjs 官方文檔
https://docs.angularjs.org/error/$location/nobase
部署服務器重寫
當你發(fā)現(xiàn)刷新頁面 或者新打開一個url的時候 顯示404 這部分是因為url 交給服務端接管了 解決辦法 在服務端 檢查發(fā)現(xiàn)url 來自angular 轉發(fā)給我們的base即可
服務器端配置
nginx
<pre>
server {
server_name my-app; root /path/to/app;
location / {
try_files $uri $uri/ /index.html;
}
}
</pre>
其他服務器請參考如下鏈接:
https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode