У меня есть приложение, на котором запущен React с React Router 5, обслуживаемым Meteor. У меня есть некоторые статические ресурсы в каталоге Meteor /public
, например:
/css/pageName.css
/css/common.css
. У меня страницы смонтированы следующим образом:
const LocaleSwitch = () => {
const { locale } = useParams();
const match = useRouteMatch();
return (
<Switch>
<Route path={ `${match.path}/pageName` }>
<PageName locale={locale}/>
</Route>
</Switch>
)
};
const App = (
<Switch>
<Route path="/:locale">
<LocaleSwitch/>
</Route>
</Switch>
);
Когда я запрашиваю /css/common.css
,Я получаю файл, как и ожидалось. Однако, когда я запрашиваю /css/pageName.css
, я получаю pageName с языком «css» вместо предполагаемого файла. Есть ли способ улучшить это приложение, чтобы получить желаемый результат? Очевидным решением было бы просто переименовать pageA.css во что-то другое, но это не идеально, и разработчикам было бы проблематично запомнить это соглашение.
Было бы замечательно, если бы было возможно одно из следующих решений:
- Сконфигурируйте Meteor, чтобы попытаться вернуть статические файлы в
/public
перед попыткой рендеринга React Router. - Монтировать
LocalizedSwitch
можно только в том случае, если :locale
соответствует определенному регулярному выражению - . Приемлемым решением будет настройка React Router на игнорирование любого пути, заканчивающегося
.css
.
. Возможно ли что-нибудь из этого?