与Django 1.5.11和Apache的翻译

时间:2016-04-18 14:10:21

标签: django apache internationalization

我正在使用django 1.5.11,其翻译的locale文件夹不在站点目录中。我使用LOCALE_PATHS变量来设置正确的文件夹。当我使用runserver启动我的应用程序时,无论是在我的机器还是服务器中,翻译都能正常工作。当我用wsgi做的时候会出现问题。我的django应用程序使用apache 2.4和mod_wsgi与python 2.7.10一起编译,带有以下wsgi脚本:

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()

启动apache时,翻译不起作用,看起来LOCALE_PATHS被忽略,而是在站点文件夹中查找翻译。我不明白这种行为来自哪里(apache mod_wsgi可能?)。还有其他人经历过同样的事吗?

1 个答案:

答案 0 :(得分:0)

我偶然发现了这个问题,尽管是Django 1.8.15。看来你必须提供LOCALE_PATHS的绝对路径才能与Apache一起工作。相对路径似乎在服务器上不起作用,而它们在本地工作。不确定是什么原因引起了这种行为。