'static', expected 'endblock'. Did you forget to register or load this tag?
조회수 3189 답변수 1 반응수 2 등록일 2016.08.05 01:43:35

  1. #base.html
  2. <!DOCTYPE html>
  3. <html lang="ko">
  4. <head>
  5.     <title>{% block title %}Django Web Programming{% endblock %}</title>
  6.     {% load staticfiles %}
  7. </head>
  8. <body>
  9.     {% block content %} {% endblock content %}
  10.      ...
  11. </body>


  1. #home.html
  2. {% extends "base.html" %}
  3. {% block content %}
  4.      <a href="/"><img src="{% static 'img/test.jpg' %}"></a>
  5.      ....
  6. {% endblock content %}

위와 같이 home 템플릿에서 base 템플릿을 상속받고 있습니다. 

또한, static 템플릿 태그를 사용하기 위해 base에서 {% load staticfiles %} 을 작성하였는데 

base 에서는 static이 문제없이 잘 되는데 home 에서 static 태그를 사용 하려고 하면 유효하지 않는 태그라고 하네요

왜 에러가 발생하는 걸까요?

정상적인 동작입니다. 템플릿을 extends 하더라도 템플릿 태그를 로드하진 않습니다.

home.html 에도 {% load ...%} 를 작성해주면 되겠지만 모든 템플릿에서 staticfiles 을 로드하는 경우에는

아래와 같이 settings.py 에서 설정을 변경하면 됩니다.

단, 장고 1.9 이상부터 지원됩니다.


  1. TEMPLATES = [
  2.     {
  3.         'OPTIONS': {
  4.             'builtins': ['django.contrib.staticfiles.templatetags.staticfiles']
  5.              ~~~
  6.         },
  7.     },
  8. ]



2016.08.11 02:33:41 반응 이력
django 1.9.7 버전이라 위와 같이 TEMPLATES에 추가하니 잘 적용되네요 막내 2016.08.12 15:23:22

답변 작성

질문에 적합한 답변을 상세히 작성해 주시기 바랍니다.

답변이 찬성되면 태그평판 +2점이 적립, 반대되면 태그평판 -1점 차감됩니다.

답변이 채택되면 태그평판 +10점이 적립됩니다.