Comment ajouter de hachage pour les url dans réagissent-routeur 4
Je voudrais ajouter de hachage à mon endopints dans réagissent-routeur pour la prévention des réponses d'erreur du serveur. Je suis en utilisant python -m SimpleHTTPServer -p 8888
pour la création du serveur.
Ce court exemple fonctionne, mais quand je suis en train de recharger la page sur une route comme /about
puis j'obtiens une erreur: Error response Error code 404. Message: File not found. Error code explanation: 404 = Nothing matches the given URI.
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
const Routes = () => (
<Router>
<div>
<ul>
<li><Link to="/about">About Link</Link></li>
<li><Link to="/company">Company Link</Link></li>
</ul>
<Switch>
<Route path="/about" component={About} />
<Route path="/company" component={Company} />
</Switch>
</div>
</Router>
);
class App extends React.Component {
render() {
return (
<Routes />
);
}
}
OriginalL'auteur Arkadiusz Wieczorek | 2017-05-02
Vous devez vous connecter pour publier un commentaire.
Il y a deux façons de le contourner:
1) Faites de votre serveur web répond toujours avec la même
index.html
fichier, peu importe la route. Cela permettra d'éviter les erreurs 404, mais n'est pas parfait car il ne prend pas en charge la mise en cache du navigateur2) Utiliser HashRouter - il conserver l'INTERFACE utilisateur route de hachage partie de l'URL, ce qui ne devrait pas être le serveur de retour 404 et permettra à côté navigateur cache. L'inconvénient de cette approche est que vous ne pouvez pas utiliser #cible des liens à des parties spécifiques de la page web
Grâce Kuba! Pour votre deuxième question: je sais que c'est pas assez mais je ne pouvais pas vous mélanger la chaîne de hachage avec la requête params et de l'utiliser comme vous #cible? Permet de dire que .../page?linkTarget=formulaire de contact
J'ai généralement une fin vers le haut en utilisant la requête params au lieu de hachage emplacement, et d'essayer d'avoir un très petit et rapide à charger index.html pour accueillir pour le manque de cache
Je suis intéressé par votre première solution. Est-il quelqu'un qui peut montrer comment le faire en utilisant un aller serveur (en particulier en utilisant packr ). Mais tous les autres actifs existants que des images ou des fichiers css doivent être fournis ainsi que les
index.html
. Merci à l'avance!OriginalL'auteur Kuba Orlik