diff --git a/hyde/server.py b/hyde/server.py index 5044e3c..a7a8c2b 100644 --- a/hyde/server.py +++ b/hyde/server.py @@ -56,9 +56,8 @@ class HydeRequestHandler(SimpleHTTPRequestHandler): 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) + 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 diff --git a/hyde/site.py b/hyde/site.py index 40a6f4a..6d46487 100644 --- a/hyde/site.py +++ b/hyde/site.py @@ -7,6 +7,7 @@ import fnmatch import sys import urlparse from functools import wraps +from urllib import quote from hyde.exceptions import HydeException from hyde.fs import FS, File, Folder @@ -408,14 +409,14 @@ class Site(object): Returns the content url by appending the base url from the config with the given path. """ - return Folder(self.config.base_url).child(path).replace(os.sep, '/') + return quote(Folder(self.config.base_url).child(path).replace(os.sep, '/').encode("utf-8")) def media_url(self, path): """ Returns the media url by appending the media base url from the config with the given path. """ - return Folder(self.config.media_url).child(path).replace(os.sep, '/') + return quote(Folder(self.config.media_url).child(path).replace(os.sep, '/').encode("utf-8")) def full_url(self, path): """