2013-02-24 64 views
14

私はフラスコを使用して、私はこのURLを呼び出すときに、私はこのエラーを得た:私はjinja2.exceptions.TemplateNotFoundエラー

Traceback (most recent call last): 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1701, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1689, in wsgi_app 
    response = self.make_response(self.handle_exception(e)) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1687, in wsgi_app 
    response = self.full_dispatch_request() 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1360, in full_dispatch_request 
    rv = self.handle_user_exception(e) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1358, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1344, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "/Users/ozcan/Documents/python/app.py", line 209, in login 
    return render_template(themesDir + g.blogOptions['active_theme']+'/login.html', blogOptions = g.blogOptions, ref=ref) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/templating.py", line 124, in render_template 
    return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list), 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/jinja2/environment.py", line 758, in get_or_select_template 
    return self.get_template(template_name_or_list, parent, globals) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/jinja2/environment.py", line 719, in get_template 
    return self._load_template(name, self.make_globals(globals)) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/jinja2/environment.py", line 693, in _load_template 
    template = self.loader.load(self, name, globals) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/jinja2/loaders.py", line 115, in load 
    source, filename, uptodate = self.get_source(environment, name) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/templating.py", line 61, in get_source 
    raise TemplateNotFound(template) 
TemplateNotFound: static/themes/default/login.html 

@app.route('/login') 
def login(): 
    if authenticateForPanel(): 
     return redirect(url_for("panel")) 
    else: 
     getParam = request.args.getlist('redirect_uri') 
     if getParam: 
      ref =getParam[0] 
     else: 
      ref="/panel" 
     return render_template(themesDir + g.blogOptions['active_theme']+'/login.html', blogOptions = g.blogOptions, ref=ref) 

トレースバック:ここ/login は私のログイン方法ですlogin.htmlがあることを絶対に確かめてください(static/themes/default/404.html)。なぜこれが起こりますか?

答えて

3

私はあなたが前にthemesDirを付けてはいけないと思います。テンプレートのファイル名をフラスコに渡すだけで、それはtemplatesという名前のフォルダ内をあなたのpythonファイルに関連して探します。

+0

いいえ、動作しませんでした。ファイルが存在するのと同じディレクトリ – saidozcan

+1

あなたのテーマを '' static''フォルダに置いてはいけません!さもなければ誰もあなたのテンプレートをダウンロードすることができます! –

+0

私の目的は、アセットフォルダが各テーマになければならないことです。他の方法ではできませんでした。私の問題です:http://stackoverflow.com/questions/15027930/changing-assets-folder-directory-in -flask – saidozcan

21

あなたは間違った場所にテンプレートを置きます。 Flaskドキュメントから:

Flaskはtemplatesフォルダ内のテンプレートを探します。したがって、アプリケーションがモジュールの場合、このフォルダはそのパッケージの横にパッケージの中にあります。 詳細については、ドキュメントを参照してください。http://flask.pocoo.org/docs/quickstart/#rendering-templates

+1

これは私のためのトリックでした....ありがとう@マジッド – omah94

関連する問題