【问题标题】:Spring Boot 1.1.9+ addResourceHandler not working for static assets for absolute pathsSpring Boot 1.1.9+ addResourceHandler 不适用于绝对路径的静态资产
【发布时间】:2015-01-12 11:40:09
【问题描述】:

我有一个带有静态 html、css 和 img 文件的 Spring Boot 应用程序,我们希望将其保留在 /static 目录之外(在开发期间),以实现模块化和轻松重新加载和开发。它是我们用 AngularJS 编写的前端组件。问题出在 1.1.8 中,以下注册有效:

String userDir = System.getProperties().getProperty("user.dir");
String prefix = "file:";

registry.addResourceHandler("/diagnostics/systemstatusng/**").addResourceLocations(prefix + userDir + "/myAngularFrontend1/app/**");
registry.addResourceHandler("/loginondemand/**").addResourceLocations(prefix + userDir + "/myAngularFrontEnd2/app/**");

但在 spring-boot-starter 1.1.9(和 1.2.0.RC1)中,这不再有效。

查看最近的这篇帖子How to dynamically add static resources to spring-boot jar application?,似乎它应该可以工作,但我们左右尝试过,无法弄清楚为什么它在 spring boot starter 1.1.9 及更高版本中不起作用。任何见解将不胜感激。

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    资源位置需要是以“/”结尾的目录(不是模式),例如

    registry.addResourceHandler("/diagnostics/systemstatusng/**").addResourceLocations(prefix + userDir + "/myAngularFrontend1/app/");
    

    Spring Boot 没有任何改变(这是 Spring MVC 的核心功能),所以您之前一定只是在做不同的事情。

    【讨论】:

    • 谢谢戴夫。就是这样。有趣的是,我们将行为差异缩小到 spring-webmvc.jar。 4.0.7 版本允许目录名称上的 **,而 4.0.8 及更高版本则不允许。
    猜你喜欢
    • 2019-10-13
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    相关资源
    最近更新 更多