{{STATIC_URL}}을 (를) 자바 스크립트 파일에 전달하는 가장 좋은 해결책은 무엇입니까?STATIC_URL을 django 파일 javascript에 전달
저는 장고와 파이썬으로 작업하고 있습니다. 사전에
감사합니다. 감사합니다.
{{STATIC_URL}}을 (를) 자바 스크립트 파일에 전달하는 가장 좋은 해결책은 무엇입니까?STATIC_URL을 django 파일 javascript에 전달
저는 장고와 파이썬으로 작업하고 있습니다. 사전에
감사합니다. 감사합니다.
django-compressor
귀하는 필요한 모든 JS 또는 CSS를 하나의 파일로 압축하고 파일 크기를 최적화하여 사이트를 최적화 할 수 있습니다.
업데이트 : 기본적으로 압축기는 상대 URL을 STATIC_URL
을 사용하여 절대 URL로 변환합니다. 개발 버전을 다운로드하면 장고 템플릿 엔진 파서가 제공되어 CSS 파일에서 장고 템플릿 코드 (예 : {% static %}
)를 직접 사용할 수 있습니다.
https://github.com/jezdez/django_compressor
는 템플릿 엔진을 통해 JS 또는 CSS 파일을 구문 분석 설치 한 후 settings.py에서TemplateFilter
을 사용합니다. 이제
{% compress js %}
블록 내의 JS가 장고 템플릿 언어에 의해 구문 분석됩니다
COMPRESS_JS_FILTERS = [
'compressor.filters.template.TemplateFilter',
]
...
{% compress js %}
<script src="/my_script.js" type="text/javascript"></script>
{% endcompress %}
// my_script.js
alert('{{ STATIC_URL|escapejs }}');
당신은 최선의 방법을 요구 -이 최고라고 생각합니다. 동적 파일을 제공하는 것보다 확실히 좋습니다. 정적 URL 값을 가진 글로벌 자바 스크립트 변수를 사용하여
이것은 훌륭한 제안입니다! 장고 - 압축기는 멋진 프로젝트입니다. – slypete
@slypete, 네, 정말 대단합니다! 파일 수, 파일 크기를 최적화하고 템플릿 변수를 추가하십시오. 훌륭한. 이것은 내 최신 거대한 장고 게임 체인저입니다. 다음은 무엇입니까? –
저는이 도구를 정말 좋아합니다. 하나의 메모는 github에서 복제하지 않고 'pip install django_compressor'를 사용하여 설치하는 것입니다. 설치하는 데 10 분이 채 걸리지 않았습니다. 내 settings.py에서 명시 적으로 'COMPRESS_ENABLED = True'를 설정하는 문제는 다른 응용 프로그램에서 이미 DEBUG = True로 설정 한 것처럼 읽을 수 있으며 실제로 압축하지 않습니다. – JayCrossler
더 간단하다
<script language="javascript">var STATIC_URL = "{{ STATIC_URL|escapejs }}";</script>
<script src="{{ STATIC_URL }}js/myfile.js"></script>
그런 다음, 당신은 단순히 myfile.js에 STATIC_URL를 호출하여 정적 URL을 사용할 수 있습니다
html = '<img src="'+STATIC_URL+'/icons/flags/tn.gif">';
정말 멋집니다! –
나는이 해결책을 좋아한다! – andi
을 이것이 @Yuji 'Tomita'Tomita의 논평을 보충하는 것이라고 생각합니다.
이것은 나를 위해 일했습니다.
이것은 내가 django js 파일에서 STATIC_URL을 사용하기위한 장고 압축기의 전체 설정을 한 방법입니다. 당신의 INSTALLED_APPS 설정으로
https://github.com/jezdez/django_compressor는
pip install django_compressor
추가 '컴프레서'
INSTALLED_APPS = (
# other apps
"compressor",
)
가 settings.py에서, 디버그 모드에서 압축을 테스트하려면 :
COMPRESS_ENABLED = True
을 경우 당신 Django의 staticfiles contrib 앱 (또는 독립 실행 형 Django-staticfiles)을 사용해야합니다. django.contrib.staticfiles와 예를 들어 STATICFILES_FINDERS 설정에 D 장고 압축기의 파일 찾기 :
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# other finders..
'compressor.finders.CompressorFinder',
)
는 설정에서 TemplateFilter을 사용합니다.py를 설치 한 후 템플릿 엔진을 통해 js 또는 css 파일을 구문 분석하십시오. 이제 {%의 압축 JS %} 블록 내의 JS가 장고 템플릿 언어에 의해 구문 분석됩니다
COMPRESS_JS_FILTERS = [
'compressor.filters.template.TemplateFilter',
]
...
{% load compress %}
{% compress js %}
<script src="/my_script.js" type="text/javascript"></script>
{% endcompress %}
// my_script.js
alert('{{ STATIC_URL|escapejs }}');
문서를 읽었을 때 "STATICFILES_FINDERS"설정을 찾지 못했습니다. 귀하의 의견을 읽고 그것을 추가 한 후, 내 애플 리케이션이 작동하기 시작했다. 감사! – mk2
당신이 템플릿에 자바 스크립트 파일을로드 의미인가? 또는 javascript 파일에서 {{STATIC_URL}}의 값을 사용한다는 의미입니까? – arnkore