gpt4 book ai didi

java - Spring + Thymeleaf 资源处理程序与 RequestMapping 冲突

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:09 25 4
gpt4 key购买 nike

注册“通用”后@RequestMapping我的资源处理程序停止工作。

首先我有这个资源配置,使用 Thymeleaf:

@Value("${ty-resource}")    
private String resource;

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("/resources/**").addResourceLocations(resource);
}

我的资源在项目之外,所以我的客户可以根据他的意愿更新其资源(他要求这样做)。

一切正常,我的资源是从 ${user.dir}/../webapp/resources/ 发送的

然后我注册了@RequestMapping(value="/{department}/{category}/{subCategory}") .

然后我的资源开始通过此请求映射而不是资源处理程序进行响应。

我不知道如何解决这个问题。

我想到了这一点:

@Value("${ty-resource}")
private String resourcesPath;

@RequestMapping('/resources')
public ModelAndView resources(@RequestParam("r") String resource) {
return new ModelAndView("redirect:"+resourcesPath+resource);
}

但我认为这可能不是最好的答案。

即使尝试这样做,如 @RequestMapping(value="/{department}/{category}/{subCategory}")注册时间早于@RequestMapping('/resources') ,我的资源得到响应 @RequestMapping(value="/{department}/{category}/{subCategory}") .

-- 编辑--

示例:

<script type="text/javascript" data-th-src="@{/resources/js/components.js}"></script>

资源处理程序未响应此资源请求。 Spring 得到它作为 @RequestMapping(value="/{department}/{category}/{subCategory}") 的匹配

最佳答案

这就是我使用 Thymeleaf 加载资源的方式

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

并使用html中的绝对路径加载资源为

<script th:src="@{/resources/js/validation.js}"></script>

请查看How to harness url in Spring MVC?选定的答案。希望这会有所帮助。

关于java - Spring + Thymeleaf 资源处理程序与 RequestMapping 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40242444/

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