Django URL Conf возвращает неправильный «текущий URL» - PullRequest
2 голосов
/ 29 мая 2010

У меня есть приложение django, которое в основном готово, и URL-адреса отлично работают, когда я запускаю его с командой manage.py runserver Однако недавно я попытался запустить его через lighttpd, и многие ссылки перестали работать.

Например: http://mysite.com/races/32 должно работать, но вместо этого выдает это сообщение об ошибке.

Page not found (404)
Request Method: GET
Request URL:    http://mysite.com/races/32
Using the URLconf defined in racetrack.urls, Django tried these URL patterns, in this order:
^admin/
^create/$
^races/$
^races/(?P<race_id>\d+)/$
^races/(?P<race_id>\d+)/manage/$
^races/(?P<text>\w+)/$
^user/(?P<kol_id>\d+)/$
^$
^login/$
^logout/$
The current URL, 32, didn't match any of these.

URL-адрес запроса является точным, но последняя строка (которая отображает текущий URL-адрес) дает 32 вместо гонок / 32, как ожидалось.

Вот мой urlconf:

from django.conf.urls.defaults import *

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('racetrack.races.views',
    (r'^admin/', include(admin.site.urls)),
    (r'^create/$', 'create'),
    (r'^races/$', 'index'),
    (r'^races/(?P<race_id>\d+)/$', 'detail'),
    (r'^races/(?P<race_id>\d+)/manage/$', 'manage'),
    (r'^races/(?P<text>\w+)/$', 'index'),
    (r'^user/(?P<kol_id>\d+)/$', 'user'),
    # temporary for index page replace with welcome page
    (r'^$', 'index'),
)

urlpatterns += patterns('django.contrib.auth.views',
    (r'^login/$', 'login', {'template_name': 'races/login.html'}),
    (r'^logout/$', 'logout', {'next_page': '/'}),
)

Спасибо.

1 Ответ

2 голосов
/ 29 мая 2010

Я думаю, что проблема заключается в конфигурации lighttpd.

Django способен «переводить» «URL-адреса запросов» в «текущие URL-адреса» для проверки URL-адресов, например, с помощью конфигурации django.root для mod_python.

...