React Router PHP talpykloje
Kaip jau žinote, po surinkimo React projektas yra įprasta statika, kurią galima įkelti į bet kurią talpyklą, ir ji ten veiks iš karto.
Tačiau yra problema su React Router. Faktas yra tas, kad Router veikdamas keičia puslapių URL naršyklėje. Tuomet realiai puslapis neperkraunamas, o tik URL keičiamas JavaScript priemonėmis.
Svetainėje, patalpintoje talpykloje,
Router veiks. Bet jei būdami
kokiame nors svetainės puslapyje, išskyrus pagrindinį,
perkrausite jį, gausite 404
klaidą.
Ir tai logiška, nes naršyklė
ieškos failo nurodytu URL,
kaip paprastai veikia statinės svetainės.
O mūsų programoje tokio puslapio
nebus, kadangi mes tik imituojame
juos, o iš tikrųjų visa mūsų
programa veikia ant index.html.
Norint išspręsti problemą, reikia padaryti taip,
kad visi URL, neskiriantys realiai
egzistuojantiems failams, būtų nukreipiami
į index.html. Tai daroma
web serverio, veikiančio
talpykloje, priemonėmis.
Virtualios talpyklos veikia su PHP.
Paprastai kaip serveris naudojamas Apache.
Jame prieinamas specialus failas .htaccess,
kurio pagalba galima nustatyti
nukreipimą.
Norint tai padaryti, jūsų svetainės šaknyje
reikia patalpinti failą .htaccess
su tokiu turiniu:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Sukurkite projektą su React Router.
Įkelkite jį į talpyklą. Įsitikinkite, kad pagal numatytuosius nustatymus maršrutizavimas neveikia.
Išspręskite problemą naudodami
failą .htaccess.