2015-12-21 112 views
4

我製作了一個AngularJs應用程序,它只使用我的REST api後端(內置在java中並部署在Wildfly上)。在Wildfly部署Angular應用程序

我使用我的公共IP地址(通過端口轉發)使我的服務器可以從Internet訪問。

我的問題是如何使我的公共IP通過互聯網訪問Angular應用程序。我也可以在Wildfly上部署它嗎?我怎麼做?

+0

你在項目中使用** gulp/grunt **嗎? –

+0

沒有。我必須還是會讓它變得更容易? –

回答

3

您可以將角度應用程序打包到與REST後端API相同的應用程序中。例如,如果您將REST API封裝在.war包中,則可以將WARR應用程序文件(html頁面,js腳本......)放入您的WAR包根目錄中,並將REST資源放入WEB- INF/lib目錄打包爲JAR文件。

查看WAR包裝細節here

然後查詢您的REST API,您只需提供資源URI,而不是基本URL(包括webapp上下文),因爲角度應用程序屬於webapp,它也暴露了您的REST API。

例如,如果你想獲得你的資源之一,你可以這樣做具有角:(使用您的REST API「RS」路徑在應用程序配置和使用$ HTTP角服務)

$http.get('rs/icecreams?flavoor=strawberry') 
+0

那就是它。感謝關於$ http服務 –

3

如果你不想部署WAR/EAR,嘗試在standalone.xml配置文件中定義的處理程序:

<server name="default-server"> 
    <http-listener name="default" socket-binding="http"/> 
    <host name="default-host" alias="localhost"> 
     <location name="/" handler="welcome-content"/> 
     <location name="/yourapp" handler="static"/> 
    </host> 
</server> 
<handlers> 
    <file name="welcome-content" path="${jboss.home.dir}/welcome-content" directory-listing="true"/> 
    <file name="static" path="/var/yourapp" directory-listing="true"/> 
</handlers> 
0

我有一個angular2應用蒙山路線,是必要的額外的配置。這是這個過程:

  1. 在根模塊能夠使用哈希你的路由:

    RouterModule.forRoot(routes, { useHash: true }) 
    
  2. 構建應用程序,簡單的方法就是在angular-cli build

  3. ng build其他選項構建過程在角度應用程序根目錄中的「dist」文件夾中生成角度應用程序。將dist文件夾內的所有文件複製到WAR文件的根目錄。

  4. 訪問角應用http://SERVER_IP:PORT/WAR_PATH/#/。角度應用程序的所有路線從#/開始。

+0

的額外信息請注意,不是在url中使用哈希,而是可以在web.xml中將錯誤頁面定義爲index.html,這種錯誤請求方式將被重定向到index.html,其中angular可以接管控制:)因爲對於某些POs,URL中的#可能看起來很難看:) ' /index.html ' –

相關問題