我正在使用springboot并从互联网上下载这些模板。假设它采用maven格式,但我将其改为gradle。
问题在于,当我运行应用程序“bootRun”时,项目编译没有任何问题,但它遇到了whitelabel错误。知道我哪里出错了?
图像是控制器的定义方式,根据控制台日志,“/”被映射,但是当我运行它时,我仍然遇到错误404.
应用程序的文件结构位于第一张图片的左侧。
至于构建脚本,它最初是一个pom文件,但我已将其更改为gradle构建文件,如下所示。
最后,虽然我认为这不会影响应用程序,但我也附加了它的代码,因为这个初始化程序是应用程序的一个重要部分。
这个特殊的应用程序也使用角度,但我认为这不是这个问题的原因。由于角度被注入index.html,它应该至少找到index.html文件而不是404 rite?
希望你们中的一些人可以提供帮助。答案 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