web-dev-qa-db-fra.com

référencer un fichier .css avec thymeleaf au printemps mvc

Je fais un projet avec Spring MVC et Thymeleaf. J'ai une question sur la façon dont je devrais référencer mes fichiers CSS si j'ai cette structure de dossiers: 

src
  main
    webapp
     resources
       myCssFolder
         myCssFile.css
     web-inf
       spring
       views
         myViewFolder
           index.html

Ma classe de configuration est comme ceci:

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/css/**").addResourceLocations("/css/**");
    registry.addResourceHandler("/img/**").addResourceLocations("/img/**");
    registry.addResourceHandler("/js/**").addResourceLocations("/js/**");
    registry.addResourceHandler("/sound/**").addResourceLocations("/sound/**");
    registry.addResourceHandler("/fonts/**").addResourceLocations("/fonts/**");
}

Et j'appelle href dans mon fichier d'index comme ceci: 

href="resources/css/bootstrap.min.css"

Mais il y a des éléments qui sont un peu foirés dans ma page, par exemple le CSS ne fonctionne pas.

6
stackUser2000

Vous devrez utiliser l'attribut th:href pour faire référence aux fichiers css. Voici un exemple de tutoriel thymeleaf. Si thymeleaf ne peut pas évaluer la valeur th:href, sa valeur par défaut est href

<head>
    <title>Good Thymes Virtual Grocery</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" media="all"  
      href="../../css/gtvg.css" th:href="@{/css/gtvg.css}" />
 </head>
9
Naresh Vavilala

J'ai un tel problème! Cela m'a aidé.

  1. J'ai le répertoire /resources/css/myCSS.css. J'avais donc mis css à la racine comme /css/myCSS.css et supprimé le répertoire/les ressources
  2. Je lie MyCSS comme ceci:

<link th:href="@{/css/MyCSS.css}" href="/css/MyCSS.css"  rel="stylesheet" type="text/css"  />

2