2017-05-10 137 views
0

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

我创建了一个简约的例子来显示在Gitlab上可用的问题。这个例子是Spring Boot的基本示例项目,以及如何为静态Web内容提供服务。

直接生成项目后,它工作正常。但是,一旦我加入de.cyface.controller.TestController,我就无法再访问我的静态内容index.html。 TestController只是掩盖它。

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

回答

1

你应该把REST控制器和静态控制器之间的差异 为了让你的代码工作,你只需要创建一个名为例如 StaticContentController喜欢这个新控制器:

@Controller 
public class StaticContentController { 

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

然后里面的src /主/资源,创建文件夹的“模板”,然后添加的index.html

然后,如果你启动服务器,命中http://localhost:8080/index将工作

+0

但是index.html应该在http:// localhost:8080/index.html下可用,而不是在'static'下。静态文件夹应该是Spring Boot下的默认位置来放置静态内容,这可以作为根资源使用。 – ali

+0

@ali然后你可以通过“/”修改Controller的值,并将RequestMapping(“/ index”)添加到get方法中。不知道如果你可以使用一个HTML文件作为静态资源,静态应该是图像,CSS,JS,PDF格式,但不能确定模板。但你可以尝试验证它 – cralfaro

+0

使用该设置,你可以得到'循环视图路径[index]:将再次发送回当前的处理程序URL [/ index]。“这是我所期望的。 – ali

0

好。我解决了这个问题。我已宣布我的@RestController@RestController(value="/test")。当然这是错误的。它应该是

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

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

相关问题