Spring Boot - 如何为指定根目录中的多个路由提供一个静态 html 文件
Posted
技术标签:
【中文标题】Spring Boot - 如何为指定根目录中的多个路由提供一个静态 html 文件【英文标题】:Spring Boot - how to serve one static html file for multiple routes in specified root 【发布时间】:2016-08-06 22:11:48 【问题描述】:我需要为指定根(as example '/main/\**')
中的所有路由提供静态html
文件(/src/main/resources/static/folder/index.html)
。我尝试使用@RequestMapping("/main/**")
注释控制器方法,但它仅适用于'/main'
路由,不适用于'/main/foo'
、'/main/foo/bar'
等...
那么,我如何在 Spring Boot 中做到这一点?
【问题讨论】:
这是通过添加一个视图控制器来完成的,如下所述:***.com/questions/27381781/…。根据 spring javadoc 文档docs.spring.io/spring/docs/current/javadoc-api/org/…,您可以从具体路径或模式进行映射,这正是您所需要的。 这很奇怪,它似乎对我有用 【参考方案1】:我找到了这个解决方案:
// application.properties
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.html
// Controller for index.html
@Controller
public class IndexController
@RequestMapping("/login", "/main/**")
public String index()
return "index";
【讨论】:
这对我有用,另外只是想加入我用@SpringBootApplication注释了另一个主应用程序类并将我的静态角度应用程序放在资源\公共文件夹中【参考方案2】:您必须添加/编辑配置对象。
这是我们的做法:
@Configuration
@EnableWebMvc
public class WebConfiguration extends WebMvcConfigurerAdapter
public static final String INDEX_VIEW_NAME = "forward:index.html";
public void addViewControllers(final ViewControllerRegistry registry)
registry.addViewController("/").setViewName(INDEX_VIEW_NAME);
registry.addViewController("/login").setViewName(INDEX_VIEW_NAME);
registry.addViewController("/logout").setViewName(INDEX_VIEW_NAME);
【讨论】:
以上是关于Spring Boot - 如何为指定根目录中的多个路由提供一个静态 html 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何为非Spring Boot的Java应用程序指定外部配置文件
如何为 Spring Boot RESTful Web 服务配置多级身份验证?