Maison > Java > javaDidacticiel > le corps du texte

Que sont les règles de mappage des ressources statiques SpringBoot ?

PHPz
Libérer: 2023-05-13 16:28:06
avant
1155 Les gens l'ont consulté

1. Règles de mappage des ressources statiques

Double-cliquez sur shift ou ctrl+N dans le projet pour rechercher le fichier WebMvcAutoConfiguration.class et la méthode addResourceHandlers dans le fichier Comme suit : shiftctrl+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});
            }
        });
    }
}
Copier après la connexion

随后进入到getStaticLocations()方法可以发现变量 staticLocations 的取值如下:

"classpath:/META-INF/resources/"
"classpath:/resources/"
"classpath:/static/"
"classpath:/public/"

即项目运行时会到上述路径下寻找静态资源,也可以自定义静态资源路径,需在 application.properties 中配置:

spring.resources.static-locations=classpath:/folder1/,classpath:/folder2/

注:一旦自定义了静态文件夹的路径,则默认的静态资源路径就会失效。

2. 欢迎页

静态资源路径下的 index.html 文件会被/**所映射,当访问http://localhost:8080/时 ,会默认映射到静态资源文件夹下的 index.html。

遇到的问题

新建 index.html 文件后运行项目,访问http://localhost:8080/时会页面错误:

Que sont les règles de mappage des ressources statiques SpringBoot ?

控制台报如下错误:

Que sont les règles de mappage des ressources statiques SpringBoot ?

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.10rrreee

Entrez ensuite la méthode getStaticLocations() et vous pourrez trouver la valeur de la variable staticLocations comme suit :

Que sont les règles de mappage des ressources statiques SpringBoot ?"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'accueil🎜🎜Le 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és🎜🎜Aprè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/ : 🎜🎜Quelles sont les règles de mappage de ressources statiques de SpringBoot🎜🎜La console a signalé l'erreur suivante :🎜🎜Quelles sont les règles de mappage des ressources statiques de SpringBoot🎜🎜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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!