2015-05-02 236 views
0

我試圖在同一個NodeJS服務器上放置2個(或更多)角度的應用程序。基本上我想要的是:同一臺服務器上的多個AngularJS應用程序

  • mydomain.com/clientapp - 最終用戶的應用程序,例如:買方
  • mydomain.com/userapp - 這將創造內容的用戶。例如:他的產品
  • mydomain.com/admin賣家 - 可以批准和刪除的東西

我使用的UI路由器($ stateProvider)創建的路線和加載頁面的團隊。問題是我想能夠在我的應用程序上編寫相對路徑,所以如果我需要將基礎url從clientapp重命名爲客戶端,我不需要更改所有的應用程序url。

// this should be routed to admin/clients. Relative path 
state('listClients', { 
     url: '/clients', 
     templateUrl: 'modules/clientes/views/list-clients.client.view.html' 
    }). 

// this is how I am currently doing. 
state('listClients', { 
     url: '/admin/clients', 
     templateUrl: 'modules/clientes/views/list-clients.client.view.html' 
    }). 

正在發生的其他奇怪的事情是,當我把我的角度應用到一個URL,它殺死最後一個/,並添加#!直接在應用程序名稱:

mydomain.com/app 
becomes mydomain.com/app#!/main // ugly as hell 
wanted mydomain.com/app/#!/main // little better 

如何我:

  • 正確設置AngularJS和UI路由使用基本路徑,其所有的請求?
  • 解決醜陋的url問題?
+1

您有問題嗎? – tpie

+0

yeap。編輯了這個問題。 –

+1

你在html頭部有一個base href =元素嗎? – Cerad

回答

0

1.You可以嘗試ui.router.stateHelper

angular.module('admin', ['ui.router', 'ui.router.stateHelper']) 
    .config(function(stateHelperProvider){ 
    stateHelperProvider.setNestedState({ 
     name: 'admin', 
     url: '/admin', 
     templateUrl: 'admin.html', 
     children: [ 
     { 
      name: 'listClients', 
      url: '/clients', 
      templateUrl: 'clients.html' 
     } 
     ] 
    }); 
    }); 

一旦你想改變模塊clientapp你只需要改變模塊的名稱和URL

angular.module('clientapp', ['ui.router', 'ui.router.stateHelper']) 
    .config(function(stateHelperProvider){ 
    stateHelperProvider.setNestedState({ 
     name: 'clientapp', 
     url: '/clientapp', 
     templateUrl: 'clientapp.html', 
     children: [ 
     { 
      name: 'listClients', 
      url: '/clients', 
      templateUrl: 'clients.html' 
     } 
     ] 
    }); 
    }); 

對於這個醜陋的問題,我不知道這個問題。

+0

有一些副作用似乎是一個很好的解決方案。將檢查! –

+0

你可以嘗試'angular.js'的'$ locationProvider'來解決難題。 –

1

第一個應用程序文件夾

app.use('/', express.static(path.join(__dirname + '/app1'))); 

第二應用文件夾

app.use('/crm', express.static(path.join(__dirname + '/app1/app2'))); 

完成!享受

相關問題