UWSGI добавляет двойную косую черту в форму входа администратора в Django

Запустив Django за UWSGI, я настроил экземпляр Mezzanine, который почти работает идеально. Единственная проблема заключается в том, что страница входа в систему администратора не работает должным образом. Если вы просто попытаетесь войти в систему в обычном режиме, браузер будет перенаправлен на http://admin/. Атрибут действия формы html имеет значение //admin/ вместо /admin/, поэтому браузер видит «admin» как доменное имя, а не корневой каталог текущего домена.

Я пытался просмотреть коды пакетов Django и Mezzanine, но не вижу там ничего, что могло бы вызвать постороннюю косую черту. Я нашел одну веб-страницу, в которой говорится, что изменение settings.FORCE_SCRIPT_NAME на "/" может вызвать это, но я не переопределяю значение по умолчанию None, поэтому это не должно быть причиной.

В urls.py у меня есть следующее (я думаю, что это значение по умолчанию):

urlpatterns = patterns("",

    # Change the admin prefix here to use an alternate URL for the
    # admin interface, which would be marginally more secure.
    ("^admin/", include(admin.site.urls)),

  ....

person Tim Tisdall    schedule 29.10.2012    source источник


Ответы (1)


После долгого времени я понял, в чем проблема! Я следовал некоторым указаниям о том, как настроить uwsgi с nginx, в котором говорилось, что нужно включить строку с надписью uwsgi_param SCRIPT_NAME /;. Целью SCRIPT_NAME является предоставление базового пути для приложения UWSGI, поэтому в данном случае он служит для удвоения косых черт. Я обнаружил ту же проблему, возникающую в пирамиде. Я подозреваю, что это произойдет с любым приложением UWSGI.

person Tim Tisdall    schedule 10.01.2013
comment
Как правило, вы хотите, чтобы ваши приложения Django отлаживались локально, что изменило бы характер вашего первоначального вопроса на вопрос об развертывании Django и Mezzanine, а не об установке. Документация по развертыванию Mezzanine превосходна, а прилагаемый сценарий Fabric — отличное место для начала. mezzanine.jupo.org/docs/deployment.html - person ken; 03.02.2013
comment
@ken Твое редактирование действительно странное. Хотя я согласен с вашими исправлениями грамматики, я категорически не согласен с изменением и/или добавлением целых предложений. Если вы хотите добавить что-то к ответу, вы должны написать свой собственный ответ, а не использовать ответы других. - person bikeshedder; 03.02.2013
comment
@bikeshedder, с уважением, я не согласен. Редактирование ответов для ясности является важной частью SO, и я никогда раньше не видел жалоб на это. Я удалил некоторые разговорные выражения и добавил объяснение SCRIPT_NAME, а затем закончил мысли OP, увидев такое поведение в других приложениях uWSGI. Вряд ли это угон. Кроме того, больше кармы за это получит Тим ​​Тисдалл, а не я. - person ken; 04.02.2013
comment
Неважно, кто получает очки репутации. Просто неприлично писать под чужим именем. Если вы действительно хотите отредактировать ответ и добавить дополнительную информацию, отметьте его как таковой. например Примечание от ken: но если честно - комментарии именно для этого. Если вы хотите что-то добавить к ответу, используйте комментарии. - person bikeshedder; 04.02.2013
comment
да.. немного странно добавлять предложения от первого лица в качестве редактирования. Особенно когда после этого добавляешь свой комментарий. - person Tim Tisdall; 04.02.2013