요약 :어떻게 핸들 - 장고 템플릿에 정적 파일을 참조하는
가 어떻게 장고 템플릿의 핸들 부분에 정적 파일을 참조해야합니까? verbatim
태그를 사용하면 핸들 막대를 사용할 수 있지만 장고의 static
태그는 사용할 수 없습니다. 세부
장고에 응용 프로그램을 변환하는 동안
, 나는 아약스 - 통화 결과를 렌더링 handelbars.js
을 사용하는 부분을 가로 질러왔다. 비아 등 다른 사람들 사이에서 "Handlebars.js in Django templates"라고 말하면 {% verbatim %}
태그에 대해 알았습니다.
간단한 핸들 바가 이것으로 잘 작동합니다. 내가 수동으로 경로를 설정하면이 잘 작동하는 동안 이제
<img src="path/{{ result }}.png">
, 나는 그것이 좋은 방법입니다 장고 믿고 :하지만이 같은 보이는 이미지가 동적으로 결과에 따라 표시됩니다 일부를 가지고 과 같이 정적 파일을 참조 : 사람이 그렇지 않은 문제를 해결하는 진정한 강력한 이유가없는 한
<img src="{% static 'path/file.png' %}">
그냥하는 static_url
상수는 권고하지 않습니다 점점 see for instance this blog
그래서, 나는 그것이를 사용하는 것이 가장 좋습니다 생각
{% static %}
방법. 순진한 해결책은 2 가지 기술을 결합하여 문자 그대로 축약 형/내연계로 템플릿을 분사하는 것입니다. 못 생기고, 판독하기 어렵고 처음부터 나쁜 생각처럼 보일뿐 아니라 작동하지 않습니다. 결과는/
가 나머지를 구문 분석 할 수 없습니다에
'에서 '경로 {%를'TemplateSyntaxError 그대로
{% verbatim %} <!-- handlebars --> {% endverbatim %} <img src="{% static 'path{% verbatim %}{{ result }}{% endverbatim %}' %}"> {% verbatim %} <!-- handlebars --> {% endverbatim %}
이 눈물로 끝나는 ''경로 {% '
백엔드 쪽에서 올바른 정적 URL을 생성하여 렌더링 할 수 있습니다. 그러나 백엔드는 템플릿에 어떤 이미지를 표시하려고하는지 알고 있어야하지 않습니다.
'관련'문자열 (예 : path/result.png
)을 백엔드에 추가로 호출하고 올바른 정적 링크를 요청하는 것이 해결책 일 수 있습니까? 이것은 그리 어렵지는 않지만 추가 통화가 필요합니다.
이렇게 정적 파일을 올바르게 참조하려면 어떻게해야합니까?
링크 된 블로그 게시물의 'STATIC_URL'사용에 대한 인수는 유스 케이스와 관련이없는 것으로 보입니다. 실제로 정적 URL 접두어 만 명시 적으로 원하기 때문에 나는 반대를 주장합니다. 나머지 URL (파일 이름 부분)은 핸들 바 템플릿에 의해 클라이언트 측에서 생성됩니다. 또한'STATIC_URL'을 래핑하는 ['get_static_prefix'] (https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#get-static-prefix) 템플릿 태그가 있음에 유의하십시오. – solarissmoke
동의 할 지 모르겠습니다. json에서 오는 이미지의 가변 부분 (이름 부분)이 필요하고 핸들 바에 의해 파싱됩니다. 하지만 그 이미지는 장고에 의해 정적 파일로 제공됩니다, 그래서 장고 실제로 거기에 갈 것이라고 결정 싶습니다. 내 상황에서 링크 맨 아래에 캐싱 예제가 유효하지 않은 이유는 없습니다.> 캐쉬를 원할 경우 핸들 막대가 그것에 대해 알지 못합니다. 따라서 핸들 바는 정적 파일의 '상대적'부분에 대해서만 알 수 있습니다. 그리고 볼 수있는 한, 블로그의 모든 인수는 관련이 있습니까? – Nanne
그런 다음 JSON에 적절한 정적 URL 생성을 사용하는 것이 중요합니다. 핸들 바 템플릿이 실제 파일 경로 (캐싱/다른 저장소 백엔드/etc가 수정하는 것)가 생성 된 클라이언트 측인지 여부를 확인하는 방법이 표시되지 않습니다. – solarissmoke