React Router дар хостинги PHP
Чун шумо аллакай медонед, пас аз сохтмони лоиҳа, React як статикаи оддиро ташкил медиҳад, ки метавон онро ба ҳар як хостинг бор кард, ва он дар он ҷо фавран кор мекунад.
Аммо, бо React Router мушкиле ҳаст. Масъала ин аст, ки Router ҳангоми кор кардан URL-и саҳифаҳоро дар браузер тағйир медиҳад. Дар ҳоле ки воқеан саҳифа боргузорӣ намешавад, ва танҳо URL бо воситаҳои JavaScript тағйир меёбад.
Дар сомонае, ки ба хостинг бор шудааст,
Router кор мекунад. Аммо, агар шумо дар ягон саҳифаи сомона,
ба ҷуз саҳифаи асосӣ, онро боргузорӣ кунед,
пас хатогии 404 падидор хоҳад шуд.
Ва ин мантиқӣ аст, зеро браузер файлро
дар URL-и додашуда ҷустуҷӯ мекунад,
ҳамон тавре ки сомонаҳои статикӣ кор мекунанд.
Ва дар барномаи мо чунин саҳифа вуҷуд надорад,
зеро мо танҳо онҳоро имзо мекунем,
ва дар асл тамоми барномаи мо рӯи index.html кор мекунад.
Барои ҳалли мушкил, бояд тавре кард,
ки ҳамаи URL-ҳое, ки ба файлҳои воқеан мавҷудбуда намераванд,
ба index.html равона шаванд. Ин бо воситаҳои
веб-сервере, ки дар хостинг кор мекунад, анҷом дода мешавад.
Хостингҳои виртуалӣ рӯи PHP кор мекунанд.
Одатан ҳамчун сервер Apache истифода мешавад.
Дар он файли махсуси .htaccess дастрас аст,
ки бо ёрии он метавон равонасозиро таъин кард.
Барои ин шумо дар решаи сомонаи худ
бояд файли .htaccess-ро бо
mundariҷаи зерин ҷойгир кунед:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Лоиҳаеро бо React Router созед.
Онро ба хостинг бор кунед. Боварӣ ҳосил кунед, ки ба таври пешфарз routing кор намекунад.
Мушкилиро бо ёрии
файли .htaccess ислоҳ кунед.