我创建了一个只使用我的REST api后端的AngularJs应用程序(内置于java并部署在Wildfly上)。
我使用我的公共IP地址(通过端口转发)从Internet访问我的服务器。
我的问题是如何使用我的公共IP从Internet上访问Angular应用程序。我还可以在Wildfly上部署它吗?我该怎么做?
答案 0 :(得分:5)
您可以将角度应用程序打包在与REST后端API相同的应用程序中。
例如,如果您将REST api打包在.war包中,则可以将您的anglar应用程序文件(html页面,js脚本,...)放在WAR包根目录中,将REST资源放在WEB-INF中/ lib目录打包为JAR文件。
请参阅WAR包装详细信息here。
然后要查询您的REST API,您只需提供资源URI,而不是基本URL(包括webapp上下文),因为角度应用程序属于webapp,它也会暴露您的REST API。
例如,如果您想获得一个资源,可以使用angular:(使用REST API在应用程序配置中使用'rs'路径并使用$ http角度服务)
$http.get('rs/icecreams?flavoor=strawberry')
答案 1 :(得分:5)
如果您不想部署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>
答案 2 :(得分:2)
我有一个angular2应用程序与路由,并是必要的额外配置。这是一个过程:
在根模块中启用路由的使用哈希:
RouterModule.forRoot(routes, { useHash: true })
构建应用程序,简单的方法是angular-cli build
ng build
其他选项
构建过程在角度应用程序的根目录中的“dist”文件夹中生成角度应用程序。将dist文件夹中的所有文件复制到WAR文件的根目录。
在http://SERVER_IP:PORT/WAR_PATH/#/中访问角度应用。 angular app的所有路线均从#/。