React Router PHP hostingul
Nagu te juba teate, on pärast ehitamist Reacti projekt tavaline staatiline sisu, mida saab laadida üles igale hostingule, ja see töötab seal kohe.
Siiski on probleem React Routeriga. Asi on selles, et Router töötamise ajal muudab brauseris lehtede URL-i. Samal ajal leht tegelikult ei laadi uuesti, vaid ainult JavaScripti vahenditega muudetakse URL-i.
Kodulehel, mis on üles laaditud hostingule,
Router töötab. Kuid kui olles
mõnel lehel peale avalehe,
laadida see uuesti, siis tekib 404
viga.
Ja see on loogiline, sest brauser
otsib faili määratud URL-i järgi,
nagu staatilised saidid tavaliselt töötavad.
Ja meie rakenduses sellist lehte
ei ole, kuna me ainult jätame mulje
nendest, kuid tegelikult kogu meie
rakendus töötab failil index.html.
Probleemi lahendamiseks tuleb teha nii,
et kõik URL-id, mis ei viiva reaalselt
olemasolevatele failidele, suunataks
failile index.html. Seda tehakse
hostingul töötava veebiserveri
vahenditega.
Virtuaalsed hostingud töötavad PHP-l.
Tavaliselt kasutatakse serverina Apache-t.
Selles on kättesaadav spetsiaalne fail .htaccess,
mille abil saab määrata
ümbersuunamise.
Selleks peate oma saidi juurkaustas
paigutama faili .htaccess
järgmise sisuga:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Looge projekt React Routeriga.
Laadige see üles hostingule. Veenduge, et vaikimisi ruuting ei tööta.
Parandage probleem faili
.htaccess abil.