React Router op PHP-hosting
Soos jy reeds weet, na bundeling is 'n React-projek net gewone statiese lêers, wat op enige hosting geplaas kan word en dit sal dadelik daar werk.
Daar is egter 'n probleem met React Router. Die saak is dat Router die URL van bladsye in die blaaier verander terwyl dit werk. Terselfdertyd herlaai die bladsy nie werklik nie, maar slegs die URL word deur JavaScript verander.
In 'n webwerf wat op hosting geplaas is,
sal Router werk. Maar as jy op enige bladsy
van die werf, behalwe die tuisblad, is
en dit herlaai, sal 'n 404
fout verskyn.
En dit is logies, want die blaaier sal
'n lêer by die gespesifiseerde URL soek,
soos statiese webtuistes gewoonlik werk.
En in ons app sal daar nie so 'n bladsy wees nie,
aangesien ons dit net naboots,
en eintlik werk al ons
toepassing op index.html.
Om die probleem op te los, moet ons dit so maak
dat alle URL's wat nie na werklik
bestaande lêers lei nie, na
index.html geherlei word.
Dit word gedoen deur die webbediener wat
op die hosting werk.
Virtuele hosting werk op PHP.
Gewoonlik word Apache as bediener gebruik.
Daarin is 'n spesiale lêer .htaccess beskikbaar,
waarmee jy die
herleiding kan instel.
Om dit te doen, moet jy in die wortel van jou webwerf
die lêer .htaccess plaas
met die volgende inhoud:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Maak 'n projek met React Router.
Laai dit op hosting. Maak seker dat roete-bepaling nie standaard werk nie.
Los die probleem op met behulp van
die lêer .htaccess.