forked from orbit-oss/flask
normpath is now used before loading templates
This commit is contained in:
parent
38107c752c
commit
a3a843999b
4 changed files with 14 additions and 0 deletions
3
CHANGES
3
CHANGES
|
|
@ -25,6 +25,9 @@ Bugfix release, release date to be announced.
|
|||
|
||||
- Fixed an issue where the default `OPTIONS` response was
|
||||
not exposing all valid methods in the `Allow` header.
|
||||
- Jinja2 template loading syntax now allows "./" in front of
|
||||
a template load path. Previously this caused issues with
|
||||
module setups.
|
||||
|
||||
Version 0.6
|
||||
-----------
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
:copyright: (c) 2010 by Armin Ronacher.
|
||||
:license: BSD, see LICENSE for more details.
|
||||
"""
|
||||
import posixpath
|
||||
from jinja2 import BaseLoader, TemplateNotFound
|
||||
|
||||
from .globals import _request_ctx_stack
|
||||
|
|
@ -36,6 +37,9 @@ class _DispatchingJinjaLoader(BaseLoader):
|
|||
self.app = app
|
||||
|
||||
def get_source(self, environment, template):
|
||||
template = posixpath.normpath(template)
|
||||
if template.startswith('../'):
|
||||
raise TemplateNotFound(template)
|
||||
loader = None
|
||||
try:
|
||||
module, name = template.split('/', 1)
|
||||
|
|
|
|||
|
|
@ -789,6 +789,8 @@ class ModuleTestCase(unittest.TestCase):
|
|||
assert rv.data == 'Hello from the Frontend'
|
||||
rv = c.get('/admin/')
|
||||
assert rv.data == 'Hello from the Admin'
|
||||
rv = c.get('/admin/index2')
|
||||
assert rv.data == 'Hello from the Admin'
|
||||
rv = c.get('/admin/static/test.txt')
|
||||
assert rv.data.strip() == 'Admin File'
|
||||
rv = c.get('/admin/static/css/test.css')
|
||||
|
|
|
|||
|
|
@ -7,3 +7,8 @@ admin = Module(__name__, url_prefix='/admin')
|
|||
@admin.route('/')
|
||||
def index():
|
||||
return render_template('admin/index.html')
|
||||
|
||||
|
||||
@admin.route('/index2')
|
||||
def index2():
|
||||
return render_template('./admin/index.html')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue