Обработка переписывания URL-адресов и статических файлов с помощью Kraken JS
У меня есть одностраничное приложение, которое я конвертирую из более традиционной установки Apache в KrakenJS. Все идет действительно хорошо, за исключением одного бита.
Приложение использует сокеты для изменения своего состояния, и мы использовали для создания дружественных URL-адресов для наших пользователей, чтобы вернуться к предыдущему поиску. Используя настройку.htaccess следующим образом:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(favicon\.ico|favicon\.png|media|robots\.txt|crossdomain\.xml|css|js)
RewriteRule ^(.*)$ index.php [L]
Таким образом, наши статические файлы были обработаны правильно, а все остальное было перенаправлено в index.php, который обрабатывал анализ и продолжал запрашивать правильные результаты (например: example.com/section1/category1, перенаправлял бы на главную страницу, и отправьте запрос через сокет для элементов section1,category1.
Я попытался изменить мой основной маршрут в index.js, чтобы добавить подстановочный знак, но он не может обработать статические файлы (RewriteCond $1 !^(*static extensions*)
)
router.get('/', function (req, res) {
...
}
Это хорошо работает для случая использования, когда пользователь начинает с главной страницы, но (очевидно) дает мне несуществующие маршруты, если я хочу получить прямой доступ к /sec1/cat1
router.get('*', function (req, res) {
...
}
Этот перенаправляет правильно, но не может найти статические файлы.
Есть идеи, как обрабатывать статические файлы аналогично RewriteCond?