我製作了一個AngularJs應用程序,它只使用我的REST api後端(內置在java中並部署在Wildfly上)。在Wildfly部署Angular應用程序
我使用我的公共IP地址(通過端口轉發)使我的服務器可以從Internet訪問。
我的問題是如何使我的公共IP通過互聯網訪問Angular應用程序。我也可以在Wildfly上部署它嗎?我怎麼做?
我製作了一個AngularJs應用程序,它只使用我的REST api後端(內置在java中並部署在Wildfly上)。在Wildfly部署Angular應用程序
我使用我的公共IP地址(通過端口轉發)使我的服務器可以從Internet訪問。
我的問題是如何使我的公共IP通過互聯網訪問Angular應用程序。我也可以在Wildfly上部署它嗎?我怎麼做?
您可以將角度應用程序打包到與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')
那就是它。感謝關於$ http服務 –
如果你不想部署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>
我有一個angular2應用蒙山路線,是必要的額外的配置。這是這個過程:
在根模塊能夠使用哈希你的路由:
RouterModule.forRoot(routes, { useHash: true })
構建應用程序,簡單的方法就是在angular-cli build
的ng build
其他選項構建過程在角度應用程序根目錄中的「dist」文件夾中生成角度應用程序。將dist文件夾內的所有文件複製到WAR文件的根目錄。
訪問角應用http://SERVER_IP:PORT/WAR_PATH/#/。角度應用程序的所有路線從#/開始。
的額外信息請注意,不是在url中使用哈希,而是可以在web.xml中將錯誤頁面定義爲index.html,這種錯誤請求方式將被重定向到index.html,其中angular可以接管控制:)因爲對於某些POs,URL中的#可能看起來很難看:) '
你在項目中使用** gulp/grunt **嗎? –
沒有。我必須還是會讓它變得更容易? –