Wenn Sie eine Ansicht in einem Controller dienen wollen, müssen Sie sicherstellen, dass die index.html Seite innerhalb der ist src/main/resources/templates Ordner und nicht im öffentlichen oder statischen Ordner (um statische HTML-Seiten zu bedienen).
Jetzt können Sie einen Controller mit einer Abbildung wie folgt machen:
@RequestMapping("/**")
public String sample() {
return "index";
}
So stellen Sie sicher, dass Sie Feder-boot-Starter-thymeleaf auf Ihrem Classpath haben. Dadurch wird sichergestellt, dass Ihre Ansicht von einer View-Engine korrekt analysiert wird (in diesem Fall Thymeleaf).
Standardmäßig läuft Thymeleaf in HTML5 Modus, so dass kein Problem sein sollte, aber es erwartet, dass Tags auch ordnungsgemäß geschlossen werden. Wenn Sie mehr Freiheit haben wollen (z. B., Die Menschen oft nicht schließen <meta>
Tags) Sie sollten die nekohtml Abhängigkeit hinzu:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
</dependency>
Sie auch die spring.thymeleaf.mode
konfigurieren sollen:
spring.thymeleaf.mode=LEGACYHTML5
Wenn Sie dies alles tun, können Sie gehen zu jeden Pfad und es zeigt Ihnen die index.html Seite. Dies ist etwas, das Sie normalerweise möchten, wenn Sie Single Page Applications (SPA) schreiben und Sie möchten kein Hash-Standort-Routing (#
) verwenden.