找不到Spring Boot资源

时间:2017-03-26 17:47:19

标签: java spring-boot

好的,我开发了一个使用thymleaf的小型春季启动网站,现在意识到如果我想用maven插件打包所有内容,我就无法使用webapp文件夹。

为了解决这个问题,我将所有资源都移到了src / main / resources。但是,当我尝试显示任何站点时,我一直收到FileNotFoundExceptions(简单的RequestMapping返回一个String):

这是我得到的错误:

Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/index.html]
at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:157) ~[spring-web-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT]
at org.thymeleaf.spring5.templateresource.SpringResourceTemplateResource.reader(SpringResourceTemplateResource.java:103) ~[thymeleaf-spring5-3.0.3.M1.jar:3.0.3.M1]
at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:223) ~[thymeleaf-3.0.3.RELEASE.jar:3.0.3.RELEASE]
... 75 common frames omitted

然后当Spring尝试加载我的错误页面时,我又得到了同样的错误。 完整http://pastebin.com/raw/Csw5akHJ

Explorer

(是的,我知道只有静态文件夹可用。足以进行测试。)

任何人都可以帮助我吗?这有点令人沮丧。

3 个答案:

答案 0 :(得分:1)

如果您使用Thymleaf作为模板引擎,您应该在资源/模板中添加所有.html文件

答案 1 :(得分:0)

我不确定这是不是你的问题,但通常我会把所有的html页面都放在资源下的模板目录下,静态目录下的所有js和css文件。

通过这样做,可以轻松访问js和css文件。例如,如果我有css目录和test.css里面。我可以简单地访问它

所以在我的控制器上遇到你的问题我将返回这样的页面。

 @RequestMapping(value="/viewusers",method = RequestMethod.GET)
public String viewUsers(){
    return "users/viewusers";
}

在上面的示例中,我在users目录下有viewusers.html。我的用户目录在模板目录中。

答案 2 :(得分:0)

好的,我取得了一些进展。如果我使用默认模板引擎它工作正常它在我开始使用Thymeleaf时立即停止工作。显然,默认模板Engine可以自动处理类路径,而我需要从SpringResourceTemplateResolver切换到ClassLoaderTemplateResolver,如果我想使用百日咳。

到目前为止看起来一切正常。 Halleluja!