【发布时间】:2016-03-09 04:13:26
【问题描述】:
我对控制器处理程序方法有以下映射:
@RequestMapping(value = "login.html")
public String doLogin(Model model) {
return "login";
}
我对静态*.html资源有以下配置:
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("*.html").addResourceLocations(("/static/"));
}
假设我正在访问login.html,哪个优先?
有没有关于by-design 行为的官方文档?
添加 1 一些背景
我想使用纯HTML+JS 来查看我的应用程序。由于我不知道如何从控制器方法返回 HTML(有人说不可能),所以我决定使用 static resource handler 提供静态 HTML。但似乎我仍然需要为我的 Web 应用程序配置一个映射到根路径 / 的处理程序方法。虽然我已经在/static/ 路径下放置了一个index.html。即,我必须有这个:
@RequestMapping(value = "/")
public String welcome(Model model) {
return "redirect:index.html"; //must prefix with "redirect:"
}
否则,当我点击http://mysite/ 时,我会收到404 错误。
ADD 2 -- 一些实验结果
好像优先级是这样的:
请求来了 -> 控制器请求映射 -> 如果控制器中没有有效的映射,检查静态资源处理程序 -> 如果没有找到有效的静态资源,404,糟糕...
添加 3 - 3 个可能的选项来提供静态资源。
我把问题移到这里:
【问题讨论】:
标签: spring spring-mvc web-development-server