SpringBoot索引无法读取

时间:2018-04-12 03:54:09

标签: angularjs spring spring-mvc spring-boot

我正在使用springboot并从互联网上下载这些模板。假设它采用maven格式,但我将其改为gradle。

问题在于,当我运行应用程序“bootRun”时,项目编译没有任何问题,但它遇到了whitelabel错误。知道我哪里出错了?

enter image description here

图像是控制器的定义方式,根据控制台日志,“/”被映射,但是当我运行它时,我仍然遇到错误404.

enter image description here

应用程序的文件结构位于第一张图片的左侧。

至于构建脚本,它最初是一个pom文件,但我已将其更改为gradle构建文件,如下所示。

enter image description here

原始pom文件如下: enter image description here

最后,虽然我认为这不会影响应用程序,但我也附加了它的代码,因为这个初始化程序是应用程序的一个重要部分。

enter image description here

这个特殊的应用程序也使用角度,但我认为这不是这个问题的原因。由于角度被注入index.html,它应该至少找到index.html文件而不是404 rite?

以防万一需要,index.html如下: enter image description here

希望你们中的一些人可以提供帮助。

2 个答案:

答案 0 :(得分:0)

Spring Boot设置了几个类路径位置,用于提供静态内容;这些是:/META-INF/resources//resources//static//public/

这是在WebMvcAutoConfiguration

中配置的
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
    "classpath:/META-INF/resources/", "classpath:/resources/",
    "classpath:/static/", "classpath:/public/" };

从您的第一个屏幕截图看,您的index.html文件似乎在/resources/static/中。尝试更新您的Controller以返回/static/index

答案 1 :(得分:0)

你正在使用Spring MVC和Thymeleaf。

您不需要任何控制器来呈现index.html,因为它位于static文件夹中,这意味着Spring MVC将为您呈现静态资源。只需删除控制器就可以了。

如果您真的想使用MVC控制器渲染index.html,则必须将index.html放入templates,否则Thymeleaf将无法找到它,您将获得以下内容:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "index", template might not exist or might not be accessible by any of the configured Template Resolvers