2016-04-18 15 views
1

Ich benutze Django 1.5.11 mit Übersetzungen mit dem Locale-Ordner nicht im Site-Verzeichnis. Ich habe die Variable LOCALE_PATHS verwendet, um den richtigen Ordner festzulegen. Wenn ich meine Anwendung mit runserver auf meinem Rechner oder auf dem Server starte, funktioniert die Übersetzung korrekt. Die Probleme kommen, wenn ich es mit wsgi mache. Mein django app ist mit Apache 2.4 und mod_wsgi mit Python 2.7.10 mit folgendem wsgi Skript zusammengestellt serviert:Übersetzungen mit Django 1.5.11 und Apache

import os 
import sys 
import site 
site.addsitedir('/path/to/virtualenvs/site-packages') 

sys.path.append('/app/folder/') 
sys.path.append('/settings/folder/') 
sys.path.append('/virtualenvs/site-packages') 
sys.path.append('/virtualenvs/bin') 

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

activate_env=os.path.expanduser("/virtualenvs/bin/activate_this.py") 
execfile(activate_env, dict(__file__=activate_env)) 

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

, wenn die Übersetzung Apache gestartet funktioniert nicht, es sieht aus wie die LOCALE_PATHS ignoriert und suchen Sie nach der Übersetzung stattdessen im Site-Ordner. Ich verstehe nicht, wo dieses Verhalten herkommt (Apache mod_wsgi vielleicht?). Hat jemand anderes das Gleiche erlebt?

Antwort

0

Ich bin gerade über dieses Problem gestolpert, wenn auch mit Django 1.8.15. Es scheint, dass Sie einen absoluten Pfad für die LOCALE_PATHS bereitstellen müssen, damit dies mit Apache funktioniert. Relative Pfade scheinen auf dem Server nicht zu funktionieren, während sie lokal funktionieren. Nicht sicher, was dieses Verhalten verursacht.

+1

Sie können nie davon ausgehen, dass das aktuelle Arbeitsverzeichnis eines WSGI-Servers tatsächlich dort ist, wo sich Ihr Code befindet. Um sicherzustellen, dass der Code tragbar ist, sollten Sie immer einen absoluten Pfad verwenden. Versuchen Sie jedoch, dies von einem Anker wie "os.path.dirname (__ file __)" zu berechnen, damit Sie das Basisverzeichnis nicht hart codieren. –

+0

Das macht Sinn, danke! – mhkuu

Verwandte Themen