2016-11-06 224 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