想在项目启动之后想通过IP+端口号就能访问指定的静态资源或者指定URL。可以进行一下配置
第一步配置静态资源
我的静态文件目录结构如下,我的登录界面文件是html,如果我想要访问该文件就得通过http://localhost:8999/backend/page/login/login.html。访问登录界面,但在此之前要配置静态资源
@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
/**
* 设置静态资源映射
*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开启静态资源配置");
registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
}
}
可以访问成功
有人就说每次在URL上面输入一大串才能访问登录界面太麻烦,有想要更方便的方式。只要输入IP+端口号就能访问登录界面了。可不可实现呢?
第二步添加默认视图
@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
/**
* 设置静态资源映射
*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开启静态资源配置");
registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
//registry.addResourceHandler("/**").addResourceLocations("classpath:/backend/");
}
@Override
protected void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("forward:/backend/page/login/login.html");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
}
}
我们可以重写addViewControllers方法
我们知道在地址栏上输入http://localhost:8999 它会默认拼接一个 / 变成 **http://localhost:8999/**所以在方法里面添加下面这段代码就可以默认访问指定url了
registry.addViewController("/").setViewName("forward:/backend/page/login/login.html");
但是其他静态资源加载不出来
上面的url少了backend,可能前端做了处理,我们可以再添加静态资源路径,把 /** 下的都映射到backend 文件下。
registry.addResourceHandler("/**").addResourceLocations("classpath:/backend/");
访问成功