2016-08-11 5 views
1

Software-Versionen: Python: 3.5.2 Django: 1.10django Vorlage verursacht Fehler 500

Ich versuche, ein django Projekt auf eine Website Dreamhost zu implementieren, aber wenn ich versuche, meine Basis-Templates zu erweitern gibt es mir ein Server Error 500. Meine Ansicht gerendert nur gut, bis ich die {% erweitert 'base.html'%} zu der Vorlage, die die Ansicht zu rendern versucht.

Was ist frustrierend ist, dass mit den gleichen Dateien, die lokale Entwicklungsversion funktioniert gut (d. H. Mit Python manage.py runserver).

Hier ist meine Projektskizze:

<website.com> 
    ├─passenger_wsgi.py 
    └─simplistic 
     └──simplistic 
     | ├─__init__.py 
     | ├─settings.py 
     | ├─urls.py 
     | └─wsgi.py 
     ├──main 
     | ├─__init__.py 
     | ├─urls.py 
     | ├─views.py 
     | └─templates 
     | └─main 
     |  └─main.html 
     ├──templates 
     | └─base.html 
     └──manage.py 

Hier ist meine passenger_wsgi.py Datei:

import sys, os 

cwd = os.getcwd() 
sys.path.append(cwd) 

INTERP = "/home/<my_user_name>/.virtualenvs/simplistic_production/bin/python" 
if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv) 

sys.path.append('/home/<my_user_name>/<my_website>.com/simplistic') 

os.environ['DJANGO_SETTINGS_MODULE']="simplistic.settings" 

from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

Hier ist der relevante Teil meines settings.py

ist
import os 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 

TEMPLATES = [ 
     { 
      'BACKEND': 'django.template.backends.django.DjangoTemplates', 
      'DIRS': [BASE_DIR, 'templates'], 
      'APP_DIRS': True, 
      'OPTIONS': { 
       'context_processors': [ 
        'django.template.context_processors.debug', 
        'django.template.context_processors.request', 
        'django.contrib.auth.context_processors.auth', 
        'django.contrib.messages.context_processors.messages', 
       ], 
      }, 
     }, 
    ] 

I habe auch versucht, den Eintrag Templates = ['DIRS':] zu

zu ändern 10
/home/<username>/<website>.com/simplistic/templates 

Dies funktioniert auch nicht.

Die Tatsache, dass die manage.py runserver-Version funktioniert, während die Produktionsumgebung nicht zu der Annahme führt, dass ein Problem mit meiner passagier_wsgi.py-Datei vorliegen könnte, aber wenn ich einen dieser Pfade ändere, dh ich kann nicht einmal auf main.html zugreifen, wenn {% extends 'base.html'%} ausgeschaltet ist.

Ich bin hier vollständig verloren. Ich würde jede Hilfe schätzen. Vielen Dank!

Antwort

1

Ihre Einstellung DIRS sieht falsch aus. Sie möchten BASE_DIR und 'templates' kombinieren.

'DIRS': [os.path.join(BASE_DIR, 'templates')], 
+0

Das hat den Trick! Ich danke dir sehr! Warum benötigt die Produktionsversion (debug = False) den Join, aber die Entwicklungsversion (debug = True) nicht? – Neighlyd

+0

Der Code ohne den Join sollte nirgends funktionieren, deshalb bin ich nicht sicher, warum es in der Entwicklung funktioniert. Vielleicht haben Sie eine Kopie der Basisvorlage im Verzeichnis 'simplistic' oder' main/templates', das Django findet. – Alasdair

Verwandte Themen