Angular 2 应用程序部署在 JBOSS 6.4 eap 上,Java 服务作为后端

Posted

技术标签:

【中文标题】Angular 2 应用程序部署在 JBOSS 6.4 eap 上,Java 服务作为后端【英文标题】:Angular 2 application deployed on JBOSS 6.4 eap with java services as backend 【发布时间】:2017-07-04 09:13:19 【问题描述】:

问题 1:Angular 2 应用程序部署在 JBOSS 服务器上但无法加载静态内容 (js/css)。问题是网站托管在它自己的上下文(localhost:8080/sample/)下,静态资源在 index.html 中被称为(link href="css/index.css" rel="stylesheet")但是它没有得到在对 localhost:8080/css/index.css 进行网络调用时加载。

我需要它指向 localhost:8080/sample/css/index.css

问题 2:或者,我们尝试在 tomcat 上托管 Angular 应用程序,但服务需要托管在 jboss 上,我们尝试实现 CROS 过滤器 (https://amodernstory.com/2014/12/27/using-cors-headers-with-java-example/) 但第一个请求通过但其他请求在 Chrome 网络选项卡中显示待处理状态。

【问题讨论】:

【参考方案1】:

我也有同样的问题。要让它加载静态内容,您需要将 index.html 中的基本 href 设置为“./”。我找到了那个“。”也有效。然后应用程序应该可以正确加载,但是您会遇到另一个问题:如果您尝试使用地址栏直接访问任何应用程序路由,您将看到“未找到”。这似乎与 JBoss 重写 HTML5 URL 并将它们重定向到索引的能力有关。我正在尝试使用此页面上的信息解决该问题:https://issues.jboss.org/browse/JDF-512。如果我成功了,我会通知你的。

【讨论】:

感谢 Mate,在 index.html 的基本 href 中添加“./”的解决方案对我有用。但现在面临另一个问题,即在 jboss 6.4 中部署时我没有得到 webapi 的响应,但它在 tomcat 中运行良好。【参考方案2】:

您可以使用对“/sample/css/index.css”的正确引用来创建 index.prod.html。然后在 angular.json 中添加以下内容

"production": 
          "fileReplacements": [
            
              "replace": "src/index.html",
              "with": "src/index.prod.html"
            

【讨论】:

以上是关于Angular 2 应用程序部署在 JBOSS 6.4 eap 上,Java 服务作为后端的主要内容,如果未能解决你的问题,请参考以下文章

在 jBoss 6.2 与 jBoss 7.3 中部署应用程序时的不同响应

如何在 jboss 7.1.1 中使用 liferay 6.1.2 中的 jboss 部署 structure.xml?

JBoss 6 迁移:部署 grails 应用程序时出错

无法在 Jboss-eap-6.4 中部署 Spring Boot 应用程序

在 JBOSS 6 EAP 中部署一个在 JBOSS AS 5 中工作的简单 WAR 应用程序的问题

作为部署安装时的 jboss-eap-6.1 oracle 驱动程序定义