У меня есть URL-маршрут в моем приложении web.py, который я хочу запустить, чтобы перехватить все URL-адреса, попадающие на сервер, но только после обслуживания любых статических ресурсов.
Например, если есть js/test.js в моем каталоге static
, путь http://a.com/js/tests.js
должен возвращать содержимое файла.Но у меня также есть моя URL-маршрутизация, настроенная так, что есть регулярное выражение, которое перехватывает все, как это:
urls = ('/.*', 'CatchAllHandler')
Так что это должно запускать только , если статический ресурс не был обнаружен.Запрос на http://a.com/js/test.js
должен возвращать статический файл test.js
, но запрос на http://a.com/js/nope.js
должен направлять через CatchAllHandler
.
. Я для этого пытался написать собственное StaticMiddleware, но этопоможет только в случае изменения порядка операций web.pyВ настоящее время промежуточное программное обеспечение выполняется после обработки маршрутов URL.Мне нужно, чтобы промежуточное программное обеспечение запускалось первым и позволяло маршрутизации url очищать запросы, которые не были обработаны статическими активами.
Единственная идея, которую я имею, состоит в том, чтобы использовать функцию notfound () в качестве моего обработчика catch all, ноэто может быть не лучшим.