我正在努力解決一個問題,即 spring-boot 沒有在 8080 上提供前端文件(通過 angular 創(chuàng)建)。我運行ng build將 .ts ng 組件文件轉換為 .js 并在 outputPath:/resource/static 文件夾中生成(我在 angular.json 文件中設置 outputPath)。創(chuàng)建了一個控制器來從資源/靜態(tài)提供內容。 @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";
}
}

UYOU
TA貢獻1878條經驗 獲得超4個贊
在 Controller 方法上嘗試將 @RequestMapping 注釋放在一個建議中
像這樣:
@Controller
@RequestMapping("/")
public class AppController{
}
在 ComponentScan (basepackages{"com.packagename of modal classes"})
添加回答
舉報
0/150
提交
取消