10 of 10 menu

React Router na PHP hostingu

Ako už viete, po zostavení projekt React predstavuje obyčajnú statiku, ktorú je možné nahrať na ľubovoľný hosting, a okamžite tam bude fungovať.

Avšak, existuje problém s React Routerom. Vec sa má tak, že Router pri práci mení URL stránok v prehliadači. Pritom sa reálne stránka neobnovuje, mení sa len URL prostredníctvom JavaScriptu.

Na webe, ktorý je nahraný na hosting, bude Router fungovať. Ale ak sa nachádzate na nejakej stránke webu, okrem hlavnej, a obnovíte ju, zobrazí sa chyba 404.

A to je logické, pretože prehliadač bude hľadať súbor pod zadanou URL adresou, ako to zvyčajne funguje pri statických webových stránkach. V našej aplikácii takáto stránka nebude existovať, pretože my ju len simulujeme, a v skutočnosti celá naša aplikácia beží na index.html.

Na vyriešenie problému je potrebné zabezpečiť, aby všetky URL adresy, ktoré nesmerujú na skutočne existujúce súbory, boli presmerované na index.html. Toto sa robí prostredníctvom webového servera, ktorý beží na hostingu.

Virtuálne hostingy bežia na PHP. Spravidla ako server sa používa Apache. V ňom je dostupný špeciálny súbor .htaccess, pomocou ktorého je možné nastaviť presmerovanie.

Na to je potrebné v koreni vášho webu umiestniť súbor .htaccess s nasledujúcim obsahom:

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.html [QSA,L]

Vytvorte projekt s React Routerom.

Nahrajte ho na hosting. Presvedčte sa, že routing predvolene nefunguje.

Odstráňte problém pomocou súboru .htaccess.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť