Double-cliquez surshift
ouctrl+N
dans le projet pour rechercher le fichierWebMvcAutoConfiguration.class
et la méthode addResourceHandlers dans le fichier Comme suit :shift
或ctrl+N
搜索WebMvcAutoConfiguration.class
文件,文件中的addResourceHandlers方法如下:
public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAddMappings()) { logger.debug("Default resource handling disabled"); } else { this.addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/"); this.addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> { registration.addResourceLocations(this.resourceProperties.getStaticLocations()); if (this.servletContext != null) { ServletContextResource resource = new ServletContextResource(this.servletContext, "/"); registration.addResourceLocations(new Resource[]{resource}); } }); } }
随后进入到getStaticLocations()
方法可以发现变量 staticLocations 的取值如下:
"classpath:/META-INF/resources/"
"classpath:/resources/"
"classpath:/static/"
"classpath:/public/"
即项目运行时会到上述路径下寻找静态资源,也可以自定义静态资源路径,需在 application.properties 中配置:
spring.resources.static-locations=classpath:/folder1/,classpath:/folder2/
注:一旦自定义了静态文件夹的路径,则默认的静态资源路径就会失效。
静态资源路径下的 index.html 文件会被/**
所映射,当访问http://localhost:8080/时 ,会默认映射到静态资源文件夹下的 index.html。
遇到的问题
新建 index.html 文件后运行项目,访问http://localhost:8080/时会页面错误:
控制台报如下错误:
Spring Boot 的版本是 2.7.8,tomcat 的版本是 9.0.71。Spring Boot 通过内嵌的 tomcat 来运行项目,但需要依靠本地的 java 环境,我本地的 java 版本是 Java 1.8.0_261(即 java 8 版本),一般 java 8 和 tomcat 8.x.x 配套使用,这里可能是版本冲突导致的问题。将项目的 SDK 改为jbr-11 JetBrains Runtime version 11.0.10
rrreee
getStaticLocations()
et vous pourrez trouver la valeur de la variable staticLocations comme suit :
"classpath:/META- INF/resources/"
"classpath :/resources/"
"classpath:/static/"
"classpath:/public/"
C'est-à-dire que lorsque le projet est en cours d'exécution, il recherchera les ressources statiques dans le chemin ci-dessus, qui peut également être personnalisé. Le chemin des ressources statiques doit être configuré dans application.properties :
spring.resources.static-locations=classpath:/folder1/. ,classpath:/folder2/Remarque : Une fois que le fichier statique est un chemin de dossier personnalisé, le chemin de ressource statique par défaut ne sera pas valide. 2. Page d'accueilLe fichier index.html sous le chemin de la ressource statique sera mappé par
/**
Lors de l'accès à http://localhost:8080/, il sera mappé à static. ressources par défaut index.html sous le dossier. Problèmes rencontrésAprès avoir créé un nouveau fichier index.html et exécuté le projet, une erreur de page se produira lors de l'accès à http://localhost:8080/ :
La console a signalé l'erreur suivante :
La version de Spring Boot est 2.7.8, et le la version de Tomcat est 9.0.71. Spring Boot exécute le projet via Tomcat intégré, mais il doit s'appuyer sur l'environnement Java local. Ma version Java locale est Java 1.8.0_261 (c'est-à-dire la version Java 8. Généralement, Java 8 et Tomcat 8.x.x le sont). utilisés ensemble. Cela peut être des problèmes causés par des conflits de versions. Changer le SDK du projet en
jbr-11 JetBrains Runtime version 11.0.10
peut résoudre le problème : JetBrains Runtime peut être considéré comme l'environnement d'exécution Java fourni avec IDEA.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!