有了从src/main/resources/static
提供静态html / css / js资源的好方法,有没有办法让某种形式的url抽象?
准确地说,我想从网址中删除.html
结尾。
答案 0 :(得分:0)
要返回不带扩展名的html静态文件与从任何模板引擎(jsp,theamleaf,freemarker)返回的视图名称相同,这里您无需在视图文件上运行任何模板处理,只需将其返回就这样。
在您的Spring配置中添加以下代码:
@Bean
public InternalResourceViewResolver internalResourceViewResolver() {
InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
internalResourceViewResolver.setPrefix("pages/");
internalResourceViewResolver.setSuffix(".html");
return internalResourceViewResolver;
}
请注意/pages
文件夹应位于ResourceLocation
内
,这意味着浏览器中的ResourceLocation + "/pages/" + pageName.html
应该会为您提供所需的文件(如果您已经配置了对静态文件的服务,那么找到ResourceLocation就不会出现问题,请在WebMvcConfigurer中检查方法addResourceHandlers
)>
现在,您可以在WebMvcConfigurer上添加:
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
registry.addViewController("/admin").setViewName("admin");
registry.addViewController("/contact").setViewName("contact");
registry.addViewController("/error").setViewName("index");
}
或仅使用它,就像在MVC控制器中的常规视图解析器中使用它一样
@GetMapping("/")
public String greeting() {
return "index";
}