Django의 웹 사이트 홈페이지에 링크 / URL을 어떻게 배치합니까?
-
03-07-2019 - |
문제
django 템플릿에는 컨텍스트에 변수가 있습니까 (예 : {{ BASE\_URL }}
, {{ ROOT\_URL }}
, 또는 {{ MEDIA\_URL }}
그것은 하나에 링크하는 데 사용할 수 있습니다 home
프로젝트의 URL?
즉, Django가 프로젝트의 루트에서 실행중인 경우 변수 (r이라고 부르자) {{ R }}
템플릿에있을 것입니다 /
. 루트 URL이 서브 폴더 인 경우 http://host/X/
변수 {{ R }}
할 것입니다 /X/
(또는 http://host/X/
).
고통스럽게 간단 해 보이지만 답을 찾을 수 없습니다. :) 고맙습니다!
해결책
홈페이지를 처리하는 데 사용하는 URL 구성을 이름으로 제공하고 다음을 사용할 수 있습니다.
urls.py :
from django.conf.urls.defaults import *
urlpatterns = patterns('myproject.views',
url(r'^$', 'index', name='index'),
)
템플릿 :
<a href="{% url index %}">...
업데이트: Django의 최신 버전에는보기 이름 주위에 인용 표시가 필요합니다.
<a href="{% url 'index' %}">...
Django 책 의이 노트에는 응용 프로그램을 하위 디렉토리에 배포하는 데 대한 몇 가지 팁이 있습니다.
다른 팁
나는 항상 같은 것을 사용합니다 <a href="/">
(물론 집이 뿌리에 있다고 가정합니다). 나는 이것을 한 번 찾는 것을 기억하는 것 같고,이 경로에 대한 django 변수를 찾을 수 없었습니다. 여하튼, /
어쨌든 꽤 쉬운 것처럼 보였습니다.
관리자에서 "사이트"로 이동하여 도메인을 설정하십시오.
통과하다 context_instance=RequestContext(request)
문제의 템플릿에.
이제 사용하십시오 {{ SITE_URL }}
그 템플릿 중 하나와 당신은 황금빛입니다.
Django 책 10 장 해당 컨텍스트 프로세서 비트를 회복 해야하는 것보다 더 많은 정보가 있습니다.
(r'^$', 'django.views.generic.simple.redirect_to', {'url': '/home/'}),
잘 작동합니다 :)