我遇到了以下问题。我想有一个使用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项目以便正常协同工作?解决方案可能非常简单,我只是错过了一些重要的事实,但我真的被困在这里。 :(
答案 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