【问题标题】:Configuring angular 2 with spring mvc project without spring boot使用没有spring boot的spring mvc项目配置angular 2
【发布时间】:2017-03-19 20:33:54
【问题描述】:

我正在将 spring mvc 项目配置为使用 angular 2 而不使用 spring boot。

我的目录结构是:

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

我在 index.jsp 中包含了以下几行

<!-- 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>

我已经按照angular 2快速入门了

https://angular.io/guide/quickstart

所有文件都包含上述链接中提到的相同代码。我唯一改变的是: 将 app 目录、node_modules 目录和配置文件复制到资源目录并修改 index.jsp 以从那里加载。

它抛出以下异常:

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

【问题讨论】:

标签: java angularjs spring-mvc angular


【解决方案1】:

按照以下步骤实现我们的主要目标,在单个服务器上运行 SPRINGMVC + Angular2。

  1. 创建普通的动态网络项目。
  2. 添加 spring 或用户 maven pom.xml 所需的所有依赖项

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

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

  5. 最后,您需要更改 index.html 中的 basehref="./"。现在您已准备好运行服务器,或者您可以部署 war 文件并将其与 tomcat 或其他服务器一起提供。

查看此thread,我已经提到了文件结构及其工作正常。

我知道使用这些方式在单个服务器上运行应用程序有很多缺点,但如果必须这样做,您可以遵循。

如果您在角度方面更改任何内容,您需要一直复制粘贴 dist 文件夹,然后您可以部署它!

【讨论】:

  • 什么是basehref标签?
  • 是应用程序在服务器上运行时最重要的部分,它告诉 Angular 路由器 URL 的静态部分是什么。然后路由器只修改 URL 的剩余部分。您可以在 Index.html 上找到基本 href。 ...
【解决方案2】:

我认为您缺少 Ressourcehandler 配置以及 Java 站点上的控制器 - 这里有一些 examples 用于使用 Spring MVC 和 Angular

【讨论】:

  • 我使用的 angular2 与 angular 1 完全不同。所以我无法在我的应用程序中遵循/使用这些示例
  • 这很清楚,但是您还有其他所有东西可以使用 angular/angular2 运行 spring mvc - 您是否还实现了 java 部分?
  • Java 部分已完成并且工作正常。我遵循了 angular 2 quick start 并创建了一个示例,该示例也可以工作,但是当我将它与 spring 应用程序集成时(我的意思是将这些 angular2 文件复制到 spring mvc 项目中)。它不工作
猜你喜欢
  • 2016-09-27
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
  • 2016-08-13
  • 2017-01-27
  • 2022-06-12
  • 2017-01-26
  • 2016-03-09
相关资源
最近更新 更多