【问题标题】:Spring resource loading fails on "specific" context pathsSpring 资源加载在“特定”上下文路径上失败
【发布时间】:2020-09-03 19:44:51
【问题描述】:

我的情况很奇怪。我在 Spring Boot 和基于安全性的项目中的静态资源(图像、图标、css、js 等)在某些上下文路径上加载得很好,但在其他路径上不起作用。 例如下面的工作就好了:

http://localhost:8080/appUserProfile/1

但是为此,资源不会加载:

http://localhost:8080/appUserProfile/1/image

对于以上内容,我已经在我的 mvc 配置中尝试了以下所有方法:

@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/appUserProfile**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
        registry.addResourceHandler("/appUserProfile/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
        registry.addResourceHandler("/appUserProfile/**/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
        registry.addResourceHandler("/appUserProfile/*/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
        registry.addResourceHandler("/appUserProfile/*/*").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
}

除上述之外,每当我遇到访问被拒绝时,都会发生同样的事情。 我的自定义 403 页面加载正常,但资源无法加载

问题:

  1. 为什么它适用于 /appUserProfile/1 而不适用于 /appUserProfile/1/image?我在这里缺少什么和/或这里有什么问题?

  2. 如何在拒绝访问页面加载资源?这个非常特殊的页面是否需要这些相关或任何特殊配置?

这里是我完整的securitymvcConfig 课程,以防上面提供的信息不够。

更新:

我没有在 application.properties 中使用任何上下文路径。发布项目结构截图。

【问题讨论】:

    标签: spring-boot spring-security thymeleaf


    【解决方案1】:

    您是否使用application.properties 设置上下文路径,例如:server.servlet.context-path=/appUserProfile。如果是,那么您的资产将从 url 提供:http://localhost:8080/appUserProfile/1/image,即使您将其保存在您的静态文件夹中而没有任何子文件夹结构。您如何处理您的端点,例如:

    http://localhost:8080/appUserProfile/1 
    

    /appUserProfile 路径可能由您在控制器级别作为请求映射提供,这很可能是正确的。你可以做什么删除这个控制器级别的映射,像我提供的那样将上下文路径添加到application.properties,并将资产保存在static文件夹中。如果没有,请在问题中提供更多详细信息,例如文件夹结构、上下文映射、控制器详细信息以供进一步分析。

    【讨论】:

    • 感谢@Ananthapadmanabhan 的努力。但从我这边看,这是一个愚蠢的错误。我缺少图像路径的前导斜杠。即 img/abc.png 而不是 /img/abc.png。在向图像添加前导斜杠后,将其全部修复。现在我不确定是否应该删除这个问题,以免给其他人造成混乱并浪费他们的时间。我很抱歉。
    猜你喜欢
    • 2012-09-24
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 2023-03-24
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多