복붙노트

[PYTHON] 후행 슬래시가없는 django URL은 리디렉션되지 않습니다.

PYTHON

후행 슬래시가없는 django URL은 리디렉션되지 않습니다.

두 개의 개별 컴퓨터에 두 개의 응용 프로그램이 있습니다. 컴퓨터 A에서 urls.py 파일에 다음과 같은 줄이 있습니다.

(r'^cast/$', 'mySite.simulate.views.cast')

이 URL은 mySite.com/cast/ 및 mySite.com/cast에서 모두 작동합니다. 하지만 컴퓨터 B에서 비슷한 URL을 작성했습니다.

(r'^login/$', 'mySite.myUser.views.login')

어떤 이유로 컴퓨터 B에서 url mySite.com/login/는 작동하지만 mySite.com/login은 멈추어 컴퓨터 A와 마찬가지로 mySite.com/login/으로 돌아 가지 않습니다. 내가 놓친 것이 있습니까? 두 url.py 파일은 모두 나처럼 보입니다.

해결법

  1. ==============================

    1.settings.py 파일에서 APPEND_SLASH 설정을 확인하십시오.

    settings.py 파일에서 APPEND_SLASH 설정을 확인하십시오.

    django 문서에 대한 추가 정보

  2. ==============================

    2.또는 다음과 같이 URL을 작성할 수 있습니다.

    또는 다음과 같이 URL을 작성할 수 있습니다.

    (r'^login/?$', 'mySite.myUser.views.login')
    

    후행 슬래시 뒤에있는 질문 기호는 정규식에서 옵션으로 만듭니다. APPEND_SLASH 설정을 사용하지 않으려는 경우에 사용하십시오.

  3. ==============================

    3.이것은 @Michael Gendin의 대답을 향상시킵니다. 그의 대답은 두 개의 URL로 된 동일한 페이지를 제공합니다. 로그인을 자동으로 login /으로 리디렉션 한 다음 후자를 기본 페이지로 제공하는 것이 좋습니다.

    이것은 @Michael Gendin의 대답을 향상시킵니다. 그의 대답은 두 개의 URL로 된 동일한 페이지를 제공합니다. 로그인을 자동으로 login /으로 리디렉션 한 다음 후자를 기본 페이지로 제공하는 것이 좋습니다.

    from django.conf.urls import patterns
    from django.views.generic import RedirectView
    
    urlpatterns = patterns('',
        # Redirect login to login/
        (r'^login$', RedirectView.as_view(url = '/login/')),
        # Handle the page with the slash.
        (r'^login/', "views.my_handler"),
    )
    
  4. ==============================

    4.나도 똑같은 문제를 겪었다. 내 솔루션 정규식의 끝 줄 앞에 (| /) 넣었습니다.

    나도 똑같은 문제를 겪었다. 내 솔루션 정규식의 끝 줄 앞에 (| /) 넣었습니다.

    url (r '^ artists / (? P [\ d] +) (| /) $', ArtistDetailView.as_view ()),

  5. ==============================

    5.나는 똑같은 문제를 겪었다. 제 경우에는 staticfiles 이전의 urls.py에있는 오래된 버전의 오래된 부분이었습니다.

    나는 똑같은 문제를 겪었다. 제 경우에는 staticfiles 이전의 urls.py에있는 오래된 버전의 오래된 부분이었습니다.

    url(r'^%s(?P<path>.*)$' % settings.MEDIA_URL.lstrip('/'),
        'django.views.static.serve',
        kwargs={'document_root': settings.MEDIA_ROOT}),
    

    MEDIA_URL이 (가) 비어있어이 패턴이 모든 것을 일치 시켰습니다.

  6. from https://stackoverflow.com/questions/1596552/django-urls-without-a-trailing-slash-do-not-redirect by cc-by-sa and MIT license