2015-12-21 95 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 ' –

相关问题