使用@PathVariable的Spring Boot + Thymeleaf导致了JS的404

时间:2015-04-03 19:18:05

标签: spring-mvc spring-boot relative-path thymeleaf

在我的项目中,我将所有这些表单与其ID相关联。因此,在我的某些控制器中,我使用@PathVariable,因此当用户点击表单名称时,它会将它们带到右侧,例如:

@RequestMapping(value="/form/{formId}", method=RequestMethod.GET)
public String getCid(Model model, @PathVariable Long formId){
    model.addAttribute("form", formRepository.findOne(formId));
    return "form";
}

但是我从Firebug错误消息中注意到,在这些控制器中,不是在/js文件夹中查找我的静态JQuery,而是查看/form/js这显然不存在。

我在Thymeleaf视图中导入JS文件的示例

<script th:src="@{js/jquery-1.11.2.js}" type="text/javascript"></script>

@PathVariable真的是问题吗?只有JS的CSS文件才会发生这种情况。我应该不使用@PathVariable吗?我可以使用@RequestParam来获得相同的结果吗?什么是一个例子?

或者无论如何设置静态内容位置的全局配置?我使用的是Spring Boot,所以我现在基本上没有配置/ xml文件。

1 个答案:

答案 0 :(得分:2)

你必须用斜杠/开始你的百里香uri's,以便相对于你的根上下文来解决它,所以替换为以下内容应该始终如一地为你工作:

<script th:src="@{/js/jquery-1.11.2.js}" type="text/javascript"></script>