React Router 5 с Meteor: как игнорировать файлы в / public - PullRequest
1 голос
/ 30 октября 2019

У меня есть приложение, на котором запущен 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 во что-то другое, но это не идеально, и разработчикам было бы проблематично запомнить это соглашение.

Было бы замечательно, если бы было возможно одно из следующих решений:

  1. Сконфигурируйте Meteor, чтобы попытаться вернуть статические файлы в /public перед попыткой рендеринга React Router.
  2. Монтировать LocalizedSwitch можно только в том случае, если :locale соответствует определенному регулярному выражению
  3. . Приемлемым решением будет настройка React Router на игнорирование любого пути, заканчивающегося .css.

. Возможно ли что-нибудь из этого?

...