gpt4 book ai didi

javascript - Spring Boot 通过嵌入式 Tomcat 在 web-application.jar 之外提供外部 HTML/javascript/css 服务?

转载 作者:行者123 更新时间:2023-12-02 04:15:03 25 4
gpt4 key购买 nike

我有一个使用嵌入式 tomcat 运行的 Web 应用程序 (package.jar)。现在,我需要添加一个 Controller (例如: http://localhost:8080/package/demo ),它将从外部文件夹(例如:/var/www/html/demo)加载该 Web 应用程序的 HTML/javascript/css可以读取文件。

我无法将它们添加到 package.jar,因为这些外部文件可以稍后更新,并且 Web 应用程序应按原样返回所有静态内容!

我尝试创建一个简单的 RestController,它指向 /var/www/html/demo/index.html ,例如:

@RestController
public class DemoController {

@RequestMapping("/")
public String handle() throws IOException {
File file = new File("/var/www/html/demo/index.html");
return FileUtils.readFileToString(file);
}

}

问题是它无法从 /var/www/html/demo/ 请求任何资源(例如:CSS/Javascript 文件)因为它们不作为 package.jar 中的资源存在(例如: http://localhost:8080/package/assets/js/config.js )

您有什么建议吗?谢谢

最佳答案

好的,想法是Spring Boot启动时需要添加静态资源,如下所示

@SpringBootApplication
public class ApplicationMain extends SpringBootServletInitializer {
...

@Bean
WebMvcConfigurer configurer () {
return new WebMvcConfigurerAdapter() {
@Override
public void addResourceHandlers (ResourceHandlerRegistry registry) {
registry.addResourceHandler("/demo/**").
addResourceLocations("file:///var/www/html/demo/");
}
};
}
}

然后,访问http://localhost:8080/package/demo将显示包含所有静态内容的 html 页面。

关于javascript - Spring Boot 通过嵌入式 Tomcat 在 web-application.jar 之外提供外部 HTML/javascript/css 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56666392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com