2017-07-23 1 views
0

Hallo Ich habe solche Bilder in den Ressourcen/statisch und steckt sich in meine index.htmlWie Frühlings-Boot sieht meine Bilder von Ressourcen

<!DOCTYPE html> 
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta charset="UTF-8"/> 
    <title>Test</title> 

</head> 
<body> 
<div> 
    <form method="POST" enctype="multipart/form-data" action="/"> 
     <p> 
      <img src="../static/image1.png" alt="Image 1"/> 
      <img src="../static/image2.png" alt="Image 2"/> 
      <tr> 
       <td></td> 
       <td><input type="submit" value="Test"/></td> 
      </tr> 
     </p> 
    </form> 
</div> 

<div th:if="${success}"> 
    <img src="/static/result.png"/> 
</div> 

</body> 
</html> 

Dann in ResourceConfig

@Configuration 
@EnableWebMvc 
@ComponentScan 
public class ResourceConfig extends WebMvcConfigurerAdapter { 

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

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     if (!registry.hasMappingForPattern("/webjars/**")) { 
      registry.addResourceHandler("/webjars/**").addResourceLocations(
        "classpath:/META-INF/resources/webjars/"); 
     } 
     if (!registry.hasMappingForPattern("/**")) { 
      registry.addResourceHandler("/**").addResourceLocations(
        CLASSPATH_RESOURCE_LOCATIONS); 
     } 
    } 
} 

das Problem machen ist, dass diese Anwendung meine Bilder nicht sieht. Ich habe Ressourcenhandler hinzugefügt, aber es hat nicht funktioniert. Der Ausgang ist

Output

+0

Können Sie die Konsolenprotokolle über Ihren Browser bereitstellen? Werden Fehler in Ihrer Anwendung protokolliert? – Chad

+0

Nur Fehler 404, localhost: 8080 kann dieses Bild nicht finden. Ich erkenne es, aber warum kann ich mein Bild nicht sehen? –

Antwort

3

This @Override Methode addResourceHandlers Spring Framework zeigt, wo sind alle statischen Ressourcen. Also ... Ihr Ordner, der Bilder enthält, die auch eine statische Ressource sind, muss unter Ihrem Stamm-Ressourcenhandler sein. Stellen Sie es so ein und erstellen Sie diesen Ordner unter dem WebContent-Ordner in Ihrem Projekt.

@Override 
    public void addResourceHandlers(final ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/assets/**").addResourceLocations("/assets/"); 
    } 
+0

Ich habe statische hinzugefügt und es funktioniert! Vielen Dank! –

1

Diese Zeile in der HTML-Vorlage

<div th:if="${success}"> 

ich Sie Thymeleaf als Template-Engine verwenden, denken läßt. Wenn das der Fall ist, sollten Sie diese auf statische Inhalte verweisen verwenden:

<img th:src="@{/result.png}"}/> 

wenn Ihre PNG-Datei in der Tat in der Wurzel Ihrer statischen Ordner ist.