【问题标题】:Angular Spring Boot Packaging IssueAngular Spring Boot 打包问题
【发布时间】:2019-01-24 19:31:19
【问题描述】:

我有一个 Spring Boot Angular 项目的当前项目结构

+--app-ui
|--+--src
|--+--dist
|--app-backend
|--+--src
|--+--+--main
|--+--+--+--resources
|--+--+--+--+--static
|--+--+--+--java

app-ui 包含 Angular 6 代码 app 后端包含 Spring Boot 代码。现在每次我构建 app-ui 时,我都希望将 app-ui 中的 dist 文件夹内容复制到 app-backend/src/main/resources/static

为了做到这一点,我在 angular build 中添加了这些行

"predeploy": "rimraf ../app-backend/src/main/resources/static/ && mkdirp ../app-backend/src/main/resources/static",

"deploy": "copyfiles -f dist/** ../app-backend/src/main/resources/static/

这会在 Spring Boot 项目中创建静态文件夹,但不会复制 dist 文件夹中的文件和文件夹。

【问题讨论】:

    标签: spring angular spring-boot


    【解决方案1】:

    我尝试通过这种方式将我的 Angular 应用程序与 spring-boot 集成,因此静态代码至少在 spring boot 应用程序路径中。但是当我的 spring 应用程序在端口 8080 上运行时,我仍然看不到用户界面。
    不确定我是否遗漏了一些东西,但我的大部分前端代码是; ng 组件 .ts、.html 和 .css 文件位于 frontend/src 目录中,我没有移动到任何地方。有什么建议吗?

    【讨论】:

    • 您的控制器是否返回了 index.html?
    • @Swastik 我认为我不需要控制器来返回 index.html,但不确定。因为 index.html 现在已经在 spring-boot app(/resources/static dir) 的路径中,所以没有专门为它制作任何控制器。
    • 你需要有一个返回 index.html 的索引控制器。
    • 路由将由 angular 从那里处理
    • @Swastik 感谢您的指出。我创建了一个控制器,但除了看到打印在控制器中的字符串“index.html”之外,看不到 UI。我确实在 chrome 选项卡上看到了角图标,这意味着它能够正确指向,但 index.html 几乎什么都没有。 body 标签提到了根角度分量。如果您可以提供帮助,这是确切的问题。 stackoverflow.com/questions/52079379/…
    【解决方案2】:

    如果您使用 AngularCLI(带有 angular.json 文件),只需更改 outputPath 属性以指定所需的静态目录。

    "outputPath": "../app-backend/src/main/resources/static"
    

    【讨论】:

    • 谢谢。这比在springboot pom.xml中配置要简单得多
    猜你喜欢
    • 2019-04-24
    • 2019-04-02
    • 2020-09-08
    • 2017-04-13
    • 2020-04-27
    • 2021-08-02
    • 2018-10-30
    • 2019-05-11
    • 2016-12-01
    相关资源
    最近更新 更多