如何在依赖Spring组件JAR的主项目中提供静态文件?
解决Spring组件库JAR静态资源无法被主应用访问的问题
修正组件库静态资源存放路径
把组件库的JS、CSS等静态文件放到src/main/resources/META-INF/resources/目录下,比如你的control-tipos.js要放在src/main/resources/META-INF/resources/js/control-tipos.js。这是Spring Boot默认能扫描到JAR包内静态资源的标准路径。验证打包后的JAR结构
用命令jar tf 你的组件库名称.jar查看JAR内部结构,确认静态资源确实在META-INF/resources/路径下,比如能找到META-INF/resources/js/control-tipos.js这条记录。主应用中正确引用静态资源
在主应用的页面里直接用根相对路径引用,写法如下:<script src="/js/control-tipos.js"></script>Spring会自动把JAR里
META-INF/resources下的内容映射到主应用的静态资源根路径,不需要额外添加前缀。非Spring Boot项目(纯Spring MVC)的额外配置
需要在主应用或组件库中添加资源处理器配置类:@Configuration public class WebResourceConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**") .addResourceLocations("classpath:/META-INF/resources/"); } }清理缓存重新构建
先执行组件库和主应用的clean命令,再重新打包部署,避免IDE或构建工具的缓存导致资源未更新。
内容的提问来源于stack exchange,提问作者Alejandro
相关产品推荐
相关产品推荐

