Je suis nouveau sur Java et Spring. Comment puis-je mapper la racine http://localhost:8080/
de mon application à un statique index.html
? Si je navigue vers http://localhost:8080/index.html
ses travaux bien.
La structure de mon application est:
Mon config\WebConfig.java
ressemble à ceci:
@Configuration
@EnableWebMvc
@ComponentScan
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/");
}
}
J'ai essayé d'ajouter registry.addResourceHandler("/").addResourceLocations("/index.html");
mais cela échoue.
java
spring
spring-boot
Shoham
la source
la source
http://localhost:8080/appName
mais ce n'est pas ce dont j'ai besoin ...Réponses:
Cela aurait fonctionné hors de la boîte si vous n'aviez pas utilisé d'
@EnableWebMvc
annotation. Lorsque vous faites cela, vous désactivez tout ce que Spring Boot fait pour vousWebMvcAutoConfiguration
. Vous pouvez supprimer cette annotation ou rajouter le contrôleur de vue que vous avez désactivé:la source
WebMvcConfigurerAdapte
r, mais sans@EnableWebMvc
"index.html
à/
. Mais est-il possible de faire en sorte que le navigateur change réellement l'URL de/
à/index.html
?/
à/index.html
utiliser"redirect:/index.html"
au lieu de transférer.Un exemple de la réponse de Dave Syer:
la source
s'il s'agit d'une application Spring Boot.
Spring Boot détecte automatiquement index.html dans le dossier public / static / webapp. Si vous avez écrit un contrôleur,
@Requestmapping("/")
il remplacera la fonction par défaut et ne montrera pas leindex.html
sauf si vous tapezlocalhost:8080/index.html
la source
la source
Mise à jour: janvier-2019
Créez d'abord un dossier public sous ressources et créez un fichier index.html. Utilisez WebMvcConfigurer au lieu de WebMvcConfigurerAdapter.
la source
Si vous utilisez la dernière
spring-boot 2.1.6.RELEASE
avec une simple@RestController
annotation, vous n'avez rien à faire, ajoutez simplement votreindex.html
fichier sous leresources/static
dossier:Ensuite, appuyez sur l'URL http: // localhost: 8080 . J'espère que cela aidera tout le monde.
la source
À l'intérieur
Spring Boot
, je mets toujours les pages Web dans un dossier commepublic
ouwebapps
ouviews
et je le place dans lesrc/main/resources
répertoire comme vous pouvez le voirapplication.properties
également.et voici mon
application.properties
:dès que vous mettez l'url comme
servername:15800
et cette demande reçue par le répartiteur de servlet occupé par Spring Boot, il recherchera exactement leindex.html
et ce nom sera sensible à la casse comme celuispring.mvc.view.suffix
qui serait html, jsp, htm etc.J'espère que cela aiderait beaucoup de monde.
la source
Le code source ressemble à -
la source
J'ai eu le même problème. Spring Boot sait où se trouvent les fichiers html statiques.
la source
Vous pouvez ajouter un RedirectViewController comme:
la source