Я хочу использовать webob.static.DirectoryApp
. Я просто не могу понять, как это сделать:Я хочу обслуживать файлы из папки с webob
Из примера на http://docs.webob.org/en/latest/file-example.html мой маршрутизатор выглядит следующим образом:
class Router(object):
def __init__(self, static_path=None):
self.routes = []
self.static_path = static_path if static_path is not None else os.path.join(os.path.dirname(os.path.realpath(__file__)), 'static')
self.static_app = DirectoryApp(self.static_path)
def add_route(self, template, controller, **vars):
if isinstance(controller, basestring):
controller = load_controller(controller)
self.routes.append((re.compile(template_to_regex(template)),
controller,
vars))
def __call__(self, environ, start_response):
req = Request(environ)
for regex, controller, vars in self.routes:
match = regex.match(req.path_info)
if match:
req.urlvars = match.groupdict()
req.urlvars.update(vars)
return controller(environ, start_response)
return exc.HTTPNotFound()(environ, start_response)
Чтобы создать приложение, чтобы служить:
def create_app():
router = Router()
#router.add_route('/', controller='app.controllers.default:index')
router.add_route('/', controller=default.index)
return router
Это служит маршруты для моих дополнительных контроллеров. Я также добавил self.static_app
.
Я просто понятия не имею, как использовать его для обслуживания статических файлов из папки static
! Может кто-нибудь, пожалуйста, просветит меня?
вы не можете просто использовать что-то вроде router.add_route ('/ статический', DirectoryApp (путь))? Вы также можете использовать req.path_info_pop() перед вызовом контроллера, чтобы получить реальный путь, необходимый DirectoryApp – gawel
Yup! Это поставило меня на правильный путь! – Asken