def translate_path(self, path): """ Finds the absolute path of the requested file by referring to the `site` variable in the server. """ path = SimpleHTTPRequestHandler.translate_path(self, path) site = self.server.site result = urlparse.urlparse(self.path) logger.debug("Trying to load file based on request: [%s]" % result.path) path = result.path.lstrip('/') res = None if path.strip() == "" or File(path).kind.strip() == "": deployed = site.config.deploy_root_path.child(path) deployed = Folder.file_or_folder(deployed) if isinstance(deployed, Folder): node = site.content.node_from_relative_path(path) res = node.get_resource('index.html') else: res = site.content.resource_from_relative_deploy_path(path) if not res: logger.error("Cannot load file: [%s]" % path) return site.config.deploy_root_path.child(path) else: self.server.generate_resource(res) new_path = site.config.deploy_root_path.child(res.relative_deploy_path) return new_path
def translate_path(self, path): """ Finds the absolute path of the requested file by referring to the `site` variable in the server. """ path = SimpleHTTPRequestHandler.translate_path(self, path) site = self.server.site result = urlparse.urlparse(self.path) logger.debug("Trying to load file based on request: [%s]" % result.path) path = result.path.lstrip('/') res = None if path.strip() == "" or File(path).kind.strip() == "": deployed = site.config.deploy_root_path.child(path) deployed = Folder.file_or_folder(deployed) if isinstance(deployed, Folder): node = site.content.node_from_relative_path(path) res = node.get_resource('index.html') elif hasattr(site.config, 'urlcleaner') and hasattr(site.config.urlcleaner, 'strip_extensions'): for ext in site.config.urlcleaner.strip_extensions: res = site.content.resource_from_relative_deploy_path(path + '.' + ext) if res: break else: res = site.content.resource_from_relative_deploy_path(path) if not res: logger.error("Cannot load file: [%s]" % path) return site.config.deploy_root_path.child(path) else: self.server.generate_resource(res) new_path = site.config.deploy_root_path.child( res.relative_deploy_path) return new_path
def translate_path(self, path): """ Finds the absolute path of the requested file by referring to the `site` variable in the server. """ site = self.server.site result = urlparse.urlparse(urllib.unquote(self.path).decode('utf-8')) logger.debug("Trying to load file based on request: [%s]" % result.path) path = result.path.lstrip('/') res = None if path.strip() == "" or File(path).kind.strip() == "": deployed = site.config.deploy_root_path.child(path) deployed = Folder.file_or_folder(deployed) if isinstance(deployed, Folder): node = site.content.node_from_relative_path(path) res = node.get_resource('index.html') elif hasattr(site.config, 'urlcleaner') and hasattr( site.config.urlcleaner, 'strip_extensions'): for ext in site.config.urlcleaner.strip_extensions: res = site.content.resource_from_relative_deploy_path( path + '.' + ext) if res: break else: res = site.content.resource_from_relative_deploy_path(path) if not res: logger.error("Cannot load file: [%s]" % path) return site.config.deploy_root_path.child(path) else: self.server.generate_resource(res) new_path = site.config.deploy_root_path.child(res.relative_deploy_path) return new_path