Spring Boot Controller屏蔽静态内容

时间:2017-05-10 09:34:57

标签: java spring spring-mvc web spring-boot

我遇到了以下问题。我想有一个使用Spring Boot的项目提供REST API和一些通过Javascript访问该API的静态Web页面。通过将其放在static中的src/main/resources目录下(或类路径上的任何其他位置),应该可以提供静态内容。但遗憾的是它不起作用。

我创建了一个简约示例,以显示Gitlab上可用的问题。该示例是Spring Boot的基本示例项目,关于如何提供静态Web内容,只需添加少量内容。

在我生成项目之后,它工作正常。但是,只要我添加de.cyface.controller.TestController,我就无法再访问我的静态内容index.html了。 TestController简单地将其屏蔽掉。

所以我的问题是,如何为Controller和静态页面配置我的Spring Boot项目以便正常协同工作?解决方案可能非常简单,我只是错过了一些重要的事实,但我真的被困在这里。 :(

2 个答案:

答案 0 :(得分:1)

您应该在REST控制器和静态控制器之间做出改变。 要使代码工作,您只应创建一个名为for instance的新Controller StaticContentController是这样的:

@Controller
public class StaticContentController {

    @RequestMapping(value="/index", method=RequestMethod.GET)
    public String get() {
        return "index";
    }
}

然后在src / main / resources中创建文件夹" templates"并添加index.html

然后,如果您启动服务器并点击http://localhost:8080/index将起作用

答案 1 :(得分:0)

确定。我解决了这个问题。我已将@RestController声明为@RestController(value="/test")。这当然是错的。它应该是

@RestController
@RequestMapping("/test")
public class ...

所以我忘了。 @RequestMapping注释。 headatdesk