为了账号安全,请及时绑定邮箱和手机立即绑定

Spring Boot 不提供静态内容(angular-cli)以在 tomcat 上提供应用程序

Spring Boot 不提供静态内容(angular-cli)以在 tomcat 上提供应用程序

慕桂英546537 2021-09-03 21:29:10
我正在努力解决一个问题,即 spring-boot 没有在 8080 上提供前端文件(通过 angular 创建)。我运行ng build将 .ts ng 组件文件转换为 .js 并在 outputPath:/resource/static 文件夹中生成(我在 angular.json 文件中设置 outputPath)。创建了一个控制器来从资源/静态提供内容。    @Controller    public class AppController {        @GetMapping("/")        public String index() {            return "index";        }     }主类(src/mainjava/webapp/app):@Configuration@EnableAutoConfiguration@ComponentScan({"webapp"})public class Application extends WebMvcAutoConfiguration {    public static void main(String[] args) {    SpringApplication app = new SpringApplication(Application.class);    app.run(args);}}Ranng build --base-href .生成的文件如下图所示。索引.html:<!doctype html><html><head>  <meta charset="utf-8">  <title>Welcome app</title>  <base href="/">  <meta name="viewport" content="width=device-width, initial-scale=1">  <link rel="icon" type="image/x-icon" href="favicon.ico"></head><body>  <app-root></app-root><script type="text/javascript" src="runtime.js"></script><script type="text/javascript" src="polyfills.js"></script><script type="text/javascript" src="styles.js"></script><script type="text/javascript" src="vendor.js"></script><script type="text/javascript" src="main.js"></script></body></html>注意:这是一个gradle项目。前端代码位于:src/main/java/webapp/frontend dir/resources 中的 Application.ymlserver:  servlet:    context-path: /  port: 8080我什至尝试在 /resources 下添加 html 文件,以查看 tomcat 是否提供此文件夹中的任何内容。我也无法访问 page1.html,因此不确定 angular/ng 内容有何不同,以至于在 tomcat 启动并运行时它无法提供服务。
查看完整描述

3 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

这是因为您正在使用隐式包含@ResponseBody 的@RestController 注释。您必须使用 @Controller for Spring boot 来自动加载 html 模板。


@Controller

public class AppController {

    @GetMapping("/")

    public String index() {

        return "index";

    }

 }


查看完整回答
反对 回复 2021-09-03
?
UYOU

TA贡献1878条经验 获得超4个赞

在 Controller 方法上尝试将 @RequestMapping 注释放在一个建议中


像这样:


@Controller

@RequestMapping("/")

public class AppController{ 

 }

在 ComponentScan (basepackages{"com.packagename of modal classes"})


查看完整回答
反对 回复 2021-09-03
  • 3 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号