React Router uz PHP hostinga
Kā jūs jau zināt, pēc projekta React buildošanas tas pārstāv parastu statiku, ko var ielādēt uz jebkura hostinga, un tas tur uzreiz darbosies.
Tomēr ir problēma ar React Router. Lieta ir tāda, ka Router darbības laikā maina lapu URL pārlūkprogrammā. Šajā laikā lapa reāli nepārlādējas, bet tikai mainās URL ar JavaScript līdzekļiem.
Vietnē, kas izvietota uz hostinga,
Router darbosies. Bet, ja atrodoties
kādā vietnes lapā, izņemot galveno,
to pārlādējat, tad parādīsies 404
kļūda.
Un tas ir loģiski, jo pārlūkprogramma
meklēs failu pēc norādītā URL,
kā parasti darbojas statiskas vietnes.
Un mūsu lietotnē šādas lapas
nebūs, jo mēs tās tikai imitējam,
bet patiesībā visa mūsu
lietotne darbojas uz index.html.
Lai atrisinātu problēmu, ir jāpadara tā,
lai visi URL, kas neved uz reāli
esošiem failiem, būtu novirzīti
uz index.html. Tas tiek darīts
ar web servera līdzekļiem, kas
strādā uz hostinga.
Virtuālie hostingi darbojas uz PHP.
Parasti kā serveris tiek izmantots Apache.
Tajā ir pieejams speciāls fails .htaccess,
ar kura palīdzību var iestatīt
novirzīšanu.
Lai to izdarītu, jums savas vietnes saknē
jāizvieto fails .htaccess
ar šādu saturu:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Izveidojiet projektu ar React Router.
Augšupielādējiet to uz hostinga. Pārliecinieties, ka pēc noklusējuma maršrutēšana nedarbojas.
Izlabojiet problēmu ar
faila .htaccess palīdzību.