diff --git a/IPython/html/tree/handlers.py b/IPython/html/tree/handlers.py index 9bd3d95bd..cf94e5c6c 100644 --- a/IPython/html/tree/handlers.py +++ b/IPython/html/tree/handlers.py @@ -36,21 +36,8 @@ class TreeHandler(IPythonHandler): def get(self, path=''): path = path.strip('/') cm = self.contents_manager - if cm.file_exists(path): - # it's not a directory, we have redirecting to do - model = cm.get(path, content=False) - # redirect to /api/notebooks if it's a notebook, otherwise /api/files - service = 'notebooks' if model['type'] == 'notebook' else 'files' - url = url_escape(url_path_join( - self.base_url, service, path, - )) - self.log.debug("Redirecting %s to %s", self.request.path, url) - self.redirect(url) - else: - if not cm.dir_exists(path=path): - # Directory is hidden or does not exist. - raise web.HTTPError(404) - elif cm.is_hidden(path): + if cm.dir_exists(path=path): + if cm.is_hidden(path): self.log.info("Refusing to serve hidden directory, via 404 Error") raise web.HTTPError(404) breadcrumbs = self.generate_breadcrumbs(path) @@ -61,6 +48,18 @@ class TreeHandler(IPythonHandler): breadcrumbs=breadcrumbs, terminals_available=self.settings['terminals_available'], )) + elif cm.file_exists(path): + # it's not a directory, we have redirecting to do + model = cm.get(path, content=False) + # redirect to /api/notebooks if it's a notebook, otherwise /api/files + service = 'notebooks' if model['type'] == 'notebook' else 'files' + url = url_escape(url_path_join( + self.base_url, service, path, + )) + self.log.debug("Redirecting %s to %s", self.request.path, url) + self.redirect(url) + else: + raise web.HTTPError(404) #-----------------------------------------------------------------------------