From c844759c6330f56d46bc52eb43a6e5412b18eb2f Mon Sep 17 00:00:00 2001 From: mdipierro Date: Thu, 30 Aug 2012 17:04:07 -0500 Subject: [PATCH] fixed issue 964, thanks Michael and Jonathan --- VERSION | 2 +- gluon/main.py | 14 +++++++++----- gluon/rewrite.py | 10 +++------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/VERSION b/VERSION index fb1d7594..7b238d89 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.0.3 (2012-08-30 15:38:37) stable +Version 2.0.3 (2012-08-30 17:04:01) stable diff --git a/gluon/main.py b/gluon/main.py index d5e6d25c..94610f41 100644 --- a/gluon/main.py +++ b/gluon/main.py @@ -30,7 +30,7 @@ import string import urllib2 from thread import allocate_lock -from fileutils import abspath, write_file, parse_version +from fileutils import abspath, write_file, parse_version, copystream from settings import global_settings from admin import add_path_first, create_missing_folders, create_missing_app_folders from globals import current @@ -84,7 +84,6 @@ from http import HTTP, redirect from globals import Request, Response, Session from compileapp import build_environment, run_models_in, \ run_controller_in, run_view_in -from fileutils import copystream, parse_version from contenttype import contenttype from dal import BaseAdapter from settings import global_settings @@ -384,7 +383,7 @@ def wsgibase(environ, responder): # ################################################## eget = environ.get - if not eget('PATH_INFO',None) and eget('REQUEST_URI',None): + if not eget('PATH_INFO') and eget('REQUEST_URI'): # for fcgi, get path_info and # query_string from request_uri items = environ['REQUEST_URI'].split('?') @@ -393,9 +392,14 @@ def wsgibase(environ, responder): environ['QUERY_STRING'] = items[1] else: environ['QUERY_STRING'] = '' - if not eget('HTTP_HOST',None): + elif not eget('REQUEST_URI'): + if eget('QUERY_STRING'): + environ['REQUEST_URI'] = eget('PATH_INFO') + '?' + eget('QUERY_STRING') + else: + environ['REQUEST_URI'] = eget('PATH_INFO') + if not eget('HTTP_HOST'): environ['HTTP_HOST'] = \ - eget('SERVER_NAME')+':'+eget('SERVER_PORT') + eget('SERVER_NAME') + ':' + eget('SERVER_PORT') (static_file, environ) = url_in(request, environ) diff --git a/gluon/rewrite.py b/gluon/rewrite.py index 731cee67..8d124670 100644 --- a/gluon/rewrite.py +++ b/gluon/rewrite.py @@ -994,6 +994,7 @@ class MapUrlIn(object): static_file = pjoin(self.request.env.applications_parent, 'applications', self.application, 'static', file) + self.extension = None log_rewrite("route: static=%s" % static_file) return static_file @@ -1053,7 +1054,7 @@ class MapUrlIn(object): if self.map_hyphen: uri = uri.replace('_', '-') app = app.replace('_', '-') - if self.extension != 'html': + if self.extension and self.extension != 'html': uri += '.' + self.extension if self.language: uri = '/%s%s' % (self.language, uri) @@ -1271,19 +1272,14 @@ def map_url_in(request, env, app=False): # handle mapping of lang/static to static/lang in externally-rewritten URLs # in case we have to handle them ourselves if map.languages and map.map_static is False and map.arg0 == 'static' and map.args(1) in map.languages: - if 'es' in map.languages: - print 'handle static/lang %s' % map.args(1) map.map_controller() map.map_language() else: - if 'es' in map.languages: - print 'NO handle static/lang %s' % map.args(1) map.map_language() map.map_controller() static_file = map.map_static() - if 'es' in map.languages: - print 'static_file=%s' % static_file if static_file: + map.update_request() return (static_file, map.env) map.map_function() map.validate_args()