我制作了一个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 **吗? –
没有。我必须还是会让它变得更容易? –