Printemps attraper tous les route de index.html
Je suis élaboration d'un ressort backend pour réagir à base de single page application où je suis à l'aide de réagir-routeur pour le côté client de routage.
À côté de la index.html page le backend sert des données sur le chemin /api/**
.
Pour servir mon index.html de src/main/resources/public/index.html
sur le chemin de la racine /
de mon application, j'ai ajouté un gestionnaire de ressources
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/").addResourceLocations("/index.html");
}
Ce que je veux est de servir l'index.html page lorsque aucun autre itinéraire correspond, par exemple, quand je l'appelle un autre chemin d'accès que /api
.
Comment puis-je configurer un tel fourre-tout route au printemps?
OriginalL'auteur oli | 2016-09-05
Vous devez vous connecter pour publier un commentaire.
Depuis mon réagir application pourrait utiliser la racine avant la cible, cela a fini de travailler pour moi
Pour être honnête, je n'ai aucune idée de pourquoi il doit être exactement dans ce format spécifique pour éviter l'infini boucle de transfert.
Travailler formulaire de moi aussi. J'ai un statique angulaire 4 contenu dans les ressources et j'arrive à chaque itinéraire à partir de mon INTERFACE utilisateur de l'app!
les images ne sont pas desservis
OriginalL'auteur Petri Ryhänen
Éviter @EnableWebMvc
Par défaut Printemps-Boot sert du contenu statique dans
src/main/resources
:Prendre un coup d'oeil à cette et cette;
Ou garder @EnableWebMvc et remplacer addViewControllers
Avez-vous préciser
@EnableWebMvc
? Prendre un coup d'oeil a ceci: Java Spring Boot: Comment mapper mon application racine (“/”) à index.html?Soit vous retirez @EnableWebMvc, ou vous pouvez re-définir
addViewControllers
:Ou de définir un Contrôleur pour attraper
/
Vous pouvez prendre un coup d'oeil a ce spring-boot-reactjs exemple de projet sur github:
Il fait ce que vous voulez l'aide d'un Contrôleur:
Son
index.html
est soussrc/main/resources/templates
Au lieu de index.html, j'ai probe.html dans le dossier modèles. Si j'ai suivi cet exemple, j'obtiens: "Aucun gestionnaire trouvé pour OBTENIR /de la sonde" j'ai aussi essayé avec index.html, mais j'ai la même erreur.
OriginalL'auteur alexbt
J'ai un Polymère à base de PWA hébergé à l'intérieur de mon Ressort de Démarrage de l'app, le long de avec web statique des ressources comme des images, et une API REST sous "/api/...". Je veux la partie cliente de l'application pour gérer le routage d'URL pour la PWA. Voici ce que j'utilise:
Cela devrait fonctionner Angulaire et Réagir apps.
/resources/static/index.html
mais toujours pas de travail, tout ce que j'obtiens est un hasard de vue de touteRestController
OriginalL'auteur Dan Syrstad
Trouvé une réponse en regardant cette question
OriginalL'auteur oli
- Je utiliser réagir et réagir-routeur dans mon printemps de démarrage de l'app, et c'était aussi facile que de créer un contrôleur de cartographie pour
/
et les sous-rubriques de mon site comme/users/**
Voici ma solution
Appels de l'Api ne sont pas pris par le contrôleur et les ressources sont gérées automatiquement.
Essayez "index.html" au lieu de "index"
OriginalL'auteur user3086678
Pour répondre à votre question spécifique qui consiste à servir le Single Page App (SPA) dans tous les cas sauf la /api route ici est ce que j'ai fait pour modifier Petri réponse.
J'ai un modèle nommé polymère qui contient le index.html pour mon SPA. Donc, le défi est devenu allons de l'avant toutes les routes à l'exception de /api et /public-api de ce point de vue.
Dans mon WebMvcConfigurerAdapter je remplace addViewControllers et utilisé l'expression régulière: ^((?!/api/|/public-api/).)*$
Dans votre cas, vous voulez l'expression régulière: ^((?!/api/).)*$
Cela conduit à être en mesure de frapper http://localhost ou http://localhost/community pour servir de mon SPA et tous les appels de repos que le SPA, le succès acheminé vers http://localhost/api/posts, http://localhost/public-api/posts, etc.
OriginalL'auteur Gandalf