#reactjs #.htaccess #react-router
#reactjs #.htaccess #реагировать-маршрутизатор
Вопрос:
У меня есть HTTP-сервер Apache, работающий в foo.org . Я хочу разместить в foo.org/path1/my_app
веб-приложении react web, которое использует react router
<Router basename="/" history={history} >
<div>
<Switch>
<Route path="/" component={Home} exact />
<Route path="/route1" exact component={Route1Component} />
<Route path="/:id/edit" exact component={Route2Component} /> // nested route!
<Route component={ErrorComponent} />
</Switch>
</div>
</Router>
Я включил в foo.org/path1/my_app
файл .htaccess файл со следующим содержимым:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /path1/my_app/index.html [L]
</IfModule>
В моем package.json я установил атрибут домашней страницы так, чтобы он соответствовал относительному пути
"homepage": "./"
Однако, когда я тестирую развернутое приложение, похоже, что react router не знает ни одного из маршрутов, поскольку все маршруты возвращаются к компоненту ошибки 404.
Комментарии:
1. Можете ли вы уточнить, каковы ваши URL-адреса react-app (на стороне клиента)?
2. URL-адреса на стороне клиента — это те, которые указаны в
<Router>
компоненте. так что «/» amp; «/route1» . Видимые URL-адреса должны быть «foo.org/path1/my_app /» amp; «foo.org/path1/my_app/route1 »