Введение
Я Получил вопрос о localeURL использовании. Все работает отлично для меня с URL как это: http://www.example.com/
Если я ввожу http://www.example.com/ в строке поиска, это поворачивается правильно в http://www.example.com/en/, например.
Если я использую представление change_locale, это также в порядке (т.е. изменение www.example.com/en/ в www.example.com/fr/).
проблема
Но мое приложение использует апача в качестве сервера с mod_wsgi. httpd.conf сценарий содержит эту строку:
WSGIScriptAlias /MY_PREFIX /path/to/django/app/apache/django.wsgi
это дает URL как это:
http://www.example.com/MY_PREFIX/
Та же проблема произошла при представлении change_locale. Я изменил этот код для управления этим префиксом (хранилище в настройках. SERVER_PREFIX):
def change_locale(request) :
"""
Redirect to a given url while changing the locale in the path
The url and the locale code need to be specified in the
request parameters.
O. Rochaix; Taken from localeURL view, and tuned to manage :
- SERVER_PREFIX from settings.py
"""
next = request.REQUEST.get('next', None)
if not next:
next = request.META.get('HTTP_REFERER', None)
if not next:
next = settings.SERVER_PREFIX + '/'
next = urlsplit(next).path
prefix = False
if settings.SERVER_PREFIX!="" and next.startswith(settings.SERVER_PREFIX) :
prefix = True
next = "/" + next.lstrip(settings.SERVER_PREFIX)
_, path = utils.strip_path (next)
if request.method == 'POST':
locale = request.POST.get('locale', None)
if locale and check_for_language(locale):
path = utils.locale_path(path, locale)
if prefix :
path = settings.SERVER_PREFIX + path
response = http.HttpResponseRedirect(path)
return response
с этим специализированным представлением я могу правильно изменить язык, но я не уверен, что это - правильный способ сделать материал.
Вопрос
в httpd.conf при использовании WSGIScriptAlias с ПРЕФИКСОМ / (т.е. "/Блог"), сделайте нам нужно на стороне Python для использования переменной (здесь настройки. SERVER_PREFIX) то соответствие WSGIScriptAlias? я использую его для MEDIA_URL и другого материала, но возможно существует некоторая конфигурация, чтобы сделать, чтобы заставить его работать "автоматически", не имея необходимость управлять этим на стороне Python
Вы думаете, что это специализированное представление (change_locale) правильный путь должно управлять этой проблемой? Или есть ли некоторый автоволшебный материал что касается 1.?
Это не решает проблему, если я ввожу адрес (http://www.example.com/MY_PREFIX/) в строке поиска. Если настройка будет способом пойти, то я изменю это также, но я думаю, что существует лучшее решение!