diff options
| -rw-r--r-- | debug_toolbar/middleware.py | 6 | ||||
| -rw-r--r-- | debug_toolbar/templates/debug_toolbar/base.html | 1 | ||||
| -rw-r--r-- | debug_toolbar/toolbar/loader.py | 3 |
3 files changed, 6 insertions, 4 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py index 9c8581c..bb8dbbc 100644 --- a/debug_toolbar/middleware.py +++ b/debug_toolbar/middleware.py @@ -12,6 +12,7 @@ _HTML_TYPES = ('text/html', 'application/xhtml+xml') _END_HEAD_RE = re.compile(r'</head>', re.IGNORECASE) _START_BODY_RE = re.compile(r'<body([^<]*)>', re.IGNORECASE) _END_BODY_RE = re.compile(r'</body>', re.IGNORECASE) +_CONTAINS_JQUERY_RE = re.compile("src=(?:(\"(.*?)jquery(.*?)\.js\")|('(.*?)jquery(.*?)\.js'))", re.IGNORECASE) class DebugToolbarMiddleware(object): """ @@ -53,8 +54,11 @@ class DebugToolbarMiddleware(object): return response if self.show_toolbar(request): if response['Content-Type'].split(';')[0] in _HTML_TYPES: + script_loc = request.META.get('SCRIPT_NAME', '') # Saving this here in case we ever need to inject into <head> #response.content = _END_HEAD_RE.sub(smart_str(self.debug_toolbar.render_styles() + "%s" % match.group()), response.content) response.content = _START_BODY_RE.sub(smart_str('<body\\1>' + self.debug_toolbar.render_toolbar()), response.content) - response.content = _END_BODY_RE.sub(smart_str('<script src="' + request.META.get('SCRIPT_NAME', '') + '/__debug__/m/toolbar.js" type="text/javascript" charset="utf-8"></script></body>'), response.content) + if not _CONTAINS_JQUERY_RE.search(response.content): + response.content = _END_BODY_RE.sub(smart_str('<script src="%s/__debug__/m/jquery.js" type="text/javascript" charset="utf-8"></script></body>' % script_loc), response.content) + response.content = _END_BODY_RE.sub(smart_str('<script src="%s/__debug__/m/toolbar.js" type="text/javascript" charset="utf-8"></script></body>' % script_loc), response.content) return response diff --git a/debug_toolbar/templates/debug_toolbar/base.html b/debug_toolbar/templates/debug_toolbar/base.html index e1d66c5..ba13294 100644 --- a/debug_toolbar/templates/debug_toolbar/base.html +++ b/debug_toolbar/templates/debug_toolbar/base.html @@ -1,4 +1,3 @@ -<script src="{{ BASE_URL }}/__debug__/m/jquery.js" type="text/javascript" charset="utf-8"></script> <style type="text/css"> @import url({{ BASE_URL }}/__debug__/m/toolbar.css); </style> diff --git a/debug_toolbar/toolbar/loader.py b/debug_toolbar/toolbar/loader.py index 935f45c..f45cbda 100644 --- a/debug_toolbar/toolbar/loader.py +++ b/debug_toolbar/toolbar/loader.py @@ -59,6 +59,5 @@ class DebugToolbar(object): Renders the overall Toolbar with panels inside. """ return render_to_string('debug_toolbar/base.html', { - 'panels': self.panels, - 'BASE_URL': self.request.META.get('SCRIPT_NAME', '') + 'panels': self.panels }) |
