JS Router dans single page app - Javascript/Node.js - Programmation
Marsh Posté le 14-11-2018 à 08:29:08
Bonjour,
Ta question fait référence au fonction même d’une SPA. Lorsque tu utilises une url directement depuis ton navigateur, la requête est envoyé directement à ton serveur. Et ce serveur, lui, ne connaît pas tes routes.
La solution classique (mais pas unique) consiste à créer un .haccess dans ton serveur en indiquant que pour toute toute autre que la racine, il faut envoyer la racine (index.html) et rajouter en paramètre l’URL cible. Comme ça quand index.html se chargera tu n’auras qu’à vérifier l’existence de se paramètre puis de rediriger la ou il faut
Dd
Marsh Posté le 20-11-2018 à 22:05:13
Bonjour,
Merci pour la réponse, en fait j'ai décidé de passer par des # plutôt que des / dans mon application, et ça fonctionne sans modifier le .htaccess.
Je ne sais pas si c'est la meilleure solution mais comme je développe une appli avec Cordova, je n'ai pas trouvé de moyen de mettre le fichier .htaccess...
Marsh Posté le 14-11-2018 à 05:43:21
Bonjour,
Je suis en train d'essayer de comprendre le fonctionnement des SPA.
Ce que j'ai fait : une page index.html qui contient un div identifié comme "app", que je viens mettre à jour en JS.
J'ai ensuite utilisé ce tuto pour créer un routeur : https://github.com/krasimir/navigo
Puis j'ai créé, pour commencer, 2 routes dans mon fichier app_r.js :
et j'ai 2 fonctions dans mon app_r.js :
Jusque là, tout se passe bien, lorsque je navigue vers localhost/test/index.html, je suis bien redirigé vers /Init, et que je clique sur le bouton "search" je vais bien sur /SearchPage
Par contre, mon problème se présente lorsque je saisis directement dans ma barre d'adresse localhost/test/SearchPage ou localhost/test/Init, dans ce cas, je ne passe pas par le processus de routage, et j'arrive donc sur Not Found.
Est-ce que vous voyez quelque chose à faire pour modifier ce comportement ?
Merci,