2015-10-13 89 views
0

我正在使用angular-ui-router的this demo,它使用WordPress站點來託管javascript文件(這不是應用作者打算的,但卻表明我的問題仍然存在)。角度應用程序有一個/login路線,如果我點擊主頁上的鏈接,加載角度應用程序的login模板。但是,如果我輸入網址http://localhost:8888/login,它會顯示WordPress登錄頁面,即它不是由angular-ui-router處理的,這使它成爲無用/不可預測的路由器。在angular-ui路由器上的路由類型

問題:有沒有辦法讓angular-ui-router處理在瀏覽器中輸入的路由,或者是否有一個角度路由器可以處理瀏覽器中的路由類型?

背景:我打算用角作爲前端,一個WordPress網站,這是非常重要的,它能夠處理的路線下降在瀏覽器中,例如,爲http:localhost:8888/2015/10/10/my-wordpress-post

這是代碼處理login路由

'use strict'; 
2 

3 routes.$inject = ['$stateProvider']; 
4 

5 export default function routes($stateProvider) { 
6 $stateProvider 
7  .state('login', { 
8  url: '/login', 
9  template: require('./login.html'), 
10  controller: 'LoginController', 
11  controllerAs: 'login' 
12  }); 
13 } 

回答

1

問題是,您的服務器正在偵聽基於url的請求。如果您使用的是Angular頁面並點擊鏈接,則表明您使用的是HTML5推送狀態。如果你輸入一個URL,你就不會,你的服務器在角度之前處理它。最簡單的解決方案是將Wordpress應用程序安裝在子目錄中,並使用root來爲Angular應用程序提供服務。

+0

所以使用一些其他類型的應用程序來服務根應用程序中的角應用程序?例如,它甚至可能是一個Python應用程序?讓他們完全分開? – Leahcim

+0

是的,儘管如果你已經在使用PHP的話,讓PHP來做它可能會更容易。否則,你不得不想出一個簡單的方法讓不同的網絡服務器在不同的路徑上監聽。 –

+0

當我說PHP時,我的意思是apache。 –