Solucione el error de TemplateNotFound de Flask en Gunicorn
Tengo una aplicación Flask que estoy intentando implementar con Gunicorn y nginx. Sin embargo, aunque funciona bien localmente, produce un error de TemplateNotFound cuando ejecuto con Gunicorn en mi servidor remoto.
No estoy seguro de cómo empezar a depurar esto, y mucho menos por qué está fallando ... me encantaría ayudar en el primero, si no en el último. Pensé que tal vez era un problema de permisos, así que cambié la carpeta de plantillas al 777 ... sin suerte. Aquí están todos los detalles relevantes:
instalar scriptComenzando con una simple instalación de Ubuntu 10.04, ejecuto esto para configurar el servidor y obtener mi código:https://github.com/total-impact/total-impact-deploy/blob/master/deploy.sh. Luego puse este archivo de configuración nginx en / etc / nginx / sites-available / total-impact:
server {
location / {
proxy_pass http://127.0.0.1:8000;
}
}
Finalmente, navego por el directorio de aplicaciones y ejecutogunicorn web:app
, y golpear la dirección IP del servidor. Esto genera un 500 en el navegador, y esta salida en la línea de comandos:
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