Problembehandlung für TemplateNotFound-Fehler in Flask unter Gunicorn

Ich habe eine Flask-App, die ich mit Gunicorn und Nginx bereitstellen möchte. Obwohl es lokal einwandfrei funktioniert, gibt es einen TemplateNotFound-Fehler aus, wenn ich mit Gunicorn auf meinem Remote-Server starte.

Ich bin mir nicht sicher, wie ich überhaupt anfangen soll, das zu debuggen, geschweige denn, warum es fehlschlägt. Ich würde gerne bei ersteren helfen, wenn nicht bei letzteren. Ich dachte, es wäre vielleicht ein Problem mit den Berechtigungen, also habe ich den Vorlagenordner auf 777 geändert ... kein Glück. Hier sind alle relevanten Details:

Skript installieren

Beginnend mit einer bloßen Ubuntu 10.04-Installation führe ich Folgendes aus, um den Server einzurichten und meinen Code einzugeben:https://github.com/total-impact/total-impact-deploy/blob/master/deploy.sh. Dann habe ich diese Nginx-Konfigurationsdatei unter / etc / nginx / sites-available / total-impact abgelegt:

server {
    location / {
        proxy_pass http://127.0.0.1:8000;
    }
}

Schließlich navigiere ich im App-Verzeichnis und startegunicorn web:appund geben Sie die IP-Adresse des Servers ein. Dies erzeugt eine 500 im Browser und diese Ausgabe in der Befehlszeile:

Stack-Trace:
root@jc:/home/ti/total-impact-webapp/totalimpactwebapp# gunicorn web:app2012-05-28 23:15:06 [15313] [INFO] Starting gunicorn 0.14.3
2012-05-28 23:15:06 [15313] [INFO] Listening at: http://127.0.0.1:8000 (15313)
2012-05-28 23:15:06 [15313] [INFO] Using worker: sync
2012-05-28 23:15:06 [15316] [INFO] Booting worker with pid: 15316
2012-05-28 23:15:12,274 - totalimpactwebapp.core - ERROR - Exception on / [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/flask/app.py", line 1292, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.6/dist-packages/flask/app.py", line 1062, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.6/dist-packages/flask/app.py", line 1060, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.6/dist-packages/flask/app.py", line 1047, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/ti/total-impact-webapp/totalimpactwebapp/web.py", line 60, in home
    return render_template('index.html', commits=False)
  File "/usr/local/lib/python2.6/dist-packages/flask/templating.py", line 120, in render_template
    return _render(ctx.app.jinja_env.get_template(template_name),
  File "/usr/local/lib/python2.6/dist-packages/jinja2/environment.py", line 719, in get_template
    return self._load_template(name, self.make_globals(globals))
  File "/usr/local/lib/python2.6/dist-packages/jinja2/environment.py", line 693, in _load_template
    template = self.loader.load(self, name, globals)
  File "/usr/local/lib/python2.6/dist-packages/jinja2/loaders.py", line 115, in load source, filename, uptodate = self.get_source(environment, name)
  File "/usr/local/lib/python2.6/dist-packages/flask/templating.py", line 61, in get_source
    raise TemplateNotFound(template)
TemplateNotFound: index.html

Antworten auf die Frage(3)

Ihre Antwort auf die Frage