gpt4 book ai didi

html - thymeleaf 正在根据 rest URI 加载静态资源

转载 作者:行者123 更新时间:2023-11-28 07:29:08 26 4
gpt4 key购买 nike

我正在使用 thymeleaf 作为我的 spring boot 元素的模板引擎。

我的目录结构是:

src/main/
|- java
| - UserAdministrationController.java
|- resources
| - static
| - admin
| - css
| - template.css
| - js
| - template.js
| - templates
|- incs
|- inc_form_create_user.html
|- users.html

我的 Controller 注释为:

@Controller
@RequestMapping("/administration/users")

我有一个获取用户页面的方法:

@RequestMapping("")
public ModelAndView getUsersPage() {
return new ModelAndView("admin/users");
}

创建用户的方法:

@RequestMapping(value = "/create", method = RequestMethod.POST)
public String handleUserCreateForm(@Valid @ModelAttribute("form") UserDTO form, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return getUsersPage().getViewName();
}
try {
userService.create(form);
} catch (DataIntegrityViolationException e) {
bindingResult.reject("email.exists", "Email already exists");
return getUsersPage().getViewName();
}
return "redirect:/administration/users";
}

还有一个方法,当它被调用时,它会在模型​​中添加一个用户(以填写表格):

@RequestMapping("/{id}/edit")
public ModelAndView getEditPage(@PathVariable("id") long id) {
ModelAndView model = new ModelAndView("admin/users");

model.addObject("userToEdit", userService.getUserById(id));

return model;

}

我正在使用相同的页面,使用包含来处理:

<div th:if="${userToEdit == null}" class="panel panel-default" th:include="admin/incs/inc_form_create_user :: createUserForm" ></div>
<div th:if="${userToEdit != null}" class="panel panel-default" th:include="admin/incs/inc_form_create_user :: editUserForm" ></div>

我的 CSS 文件已导入:

<link th:href="@{../../admin/css/template.css}" rel="stylesheet" />

当我转到 user.html 时,它也能正常工作。问题是当我调用具有不同 URI 的编辑方法时。

当我调用 create 时,url 看起来是这样的:

http://localhost:8080/administration/users

当我调用编辑时:

http://localhost:8080/administration/users/10/edit

两种情况下的导入:

../../admin/css/template.css

但是在编辑的情况下,浏览器控制台显示了这个:

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8080/administration/admin/css/template.css

最佳答案

您可以使用绝对路径而不是相对路径,例如 /admin/css/template.css 而不是 ../../admin/css/template.css。这可能有效也可能无效,具体取决于您的特定资源解析器配置。

关于html - thymeleaf 正在根据 rest URI 加载静态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31642019/

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