2016-11-06 201 views
1

我配置弹簧mvc项目使用角度2没有弹簧引导。配置角度2与弹簧mvc项目没有弹簧引导

我的目录结构是:

Project 
| 
+--src 
| 
+--resources 
|  | 
|  +--css 
|  | 
|  +--js 
|  | 
|  +--angular 
|   | 
|   +--app/ 
|   | 
|   +--node_modules/ 
|   | 
|   +--package.json,systemjs.config.js,tsconfig.json 
|   
| 
+--WEB-INF 
     | 
     +--pages 
      | 
      +--index.jsp 

我已经包含在index.jsp中的follwing线

<!-- 1. Load libraries for angular 2 setup --> 
    <!-- Polyfill(s) for older browsers --> 
    <script src="${pageContext.request.contextPath}/resources/angular/node_modules/core-js/client/shim.min.js"></script> 
    <script src="${pageContext.request.contextPath}/resources/angular/node_modules/zone.js/dist/zone.js"></script> 
    <script src="${pageContext.request.contextPath}/resources/angular/node_modules/reflect-metadata/Reflect.js"></script> 
    <script src="${pageContext.request.contextPath}/resources/angular/node_modules/systemjs/dist/system.src.js"></script> 
    <!-- 2. Configure SystemJS --> 
    <script src="${pageContext.request.contextPath}/resources/angular/systemjs.config.js"></script> 
    <script> 
     System.import('${pageContext.request.contextPath}/resources/angular/app').catch(function(err){ console.error(err); }); 
    </script> 

我都跟着角2快速启动

https://angular.io/guide/quickstart

所有文件都包含上面提到的相同代码链接。我唯一改变的是: 复制应用程序目录,node_modules目录和配置文件到资源目录和修改过的index.jsp从那里加载它。

它抛出以下异常:

GET http://localhost:8085/Phoenix/resources/angular/app/ 404(未找到)在浏览器控制台。请建议任何解决此问题的方法。

回答

0

我认为你缺少的Ressourcehandler配置,也对Java站点控制器 - 这里有一些examples使用Spring MVC和下面的步骤角

+0

我使用的是与角度1完全不同的angular2。所以我不能在我的应用中遵循/使用这些示例 – user1188867

+0

这很明显,但您有其他所有东西可以使用angular/angular2运行spring mvc - 您是否也实施过java部分? –

+0

Java部分已完成且工作正常。我遵循角2快速入门,并创建了一个样本,它也在工作,但是当我将它与Spring应用程序(我的意思是将这些angular2文件复制到spring mvc项目中)结合使用时。它不工作 – user1188867

3

按照实现我们的主要目标,在运行用SpringMVC + Angular2单个服务器。

  1. 创建正常的动态web项目。
  2. 添加弹簧或用户的Maven的pom.xml

  3. 打开CMD所需的全部扶养,导航到angular2应用。点击命令npm install,然后ng build或使用ng build --prod进行生产。该命令将创建一个“dist”文件夹,复制包括所有文件夹的所有文件。

  4. 将这些文件和文件夹粘贴到WebContent目录中。

  5. 最后一件事,你需要在index.html中改变basehref =“./”。现在您已准备好运行服务器,或者您可以部署war文件并通过tomcat或其他服务器进行服务。

结算这thread,我已经提到了文件结构和它的工作正常。

我知道使用这些方法在单个服务器上运行应用程序有很多缺点,但是如果必须要求您可以按照此方法操作。

如果您在有角度的一面更改任何内容,则需要随时复制粘贴dist文件夹,然后才能部署它!

+0

什么是basehref标签? –

+2

当应用程序在服务器上运行时,是最重要的部分,它告诉Angular路由器什么是URL的静态部分。路由器然后只修改URL的剩余部分。 你可以在Index.html上找到base href。 ... – BeingCoders