Для шаблона URL http://mysite/somedirectory/
у вас может быть такой обработчик:
- url: /(.*)/$
static_files: www/\1/index.html
upload: www/.*/index.html
Конечно, этот обработчик должен быть вставлен перед обработчиком всеобъемлющего, который у вас уже есть.
Но для шаблона http://mysite/somedirectory
url все сложно, так как вы не можете сказать, представляет ли somedirectory
файл и должен ли он быть предоставлен как есть или каталогом, в этом случае должен быть обработан соответствующий index.html
,
Если вы не следуете строгому правилу, которое можно использовать для отличия файлов от каталогов. Например, если вы знаете, что все ваши файлы имеют .
в своих именах и расширение имени файла после него, а все каталоги не имеют .
в своих именах, тогда вы можете используйте пару таких обработчиков:
# a "." in name means a file, serve as-is:
- url: /(.*\/[^\/]*\.[^\/]*)$
static_files: www/\1
upload: www/.*
# no "." in name means a directory, serve corresponding index.html:
- url: /((.*))$
static_files: www/\1/index.html
upload: www/.*/index.html
Поскольку эта пара сама по себе становится фильтром всеохватывающего действия, ее следует поместить последним (все остальные обработчики, которые у вас могут быть, должны быть перед ней), заменяя имеющийся у вас обработчик захвата.