bed*_*dre 19 javascript python django static
哪个是将{{STATIC_URL}}传递给javascript文件的最佳解决方案?
我正在使用django和python.
提前致谢.问候.
Moh*_*Ali 37
使用带有静态url值的全局javascript变量更简单:
<script language="javascript">var STATIC_URL = "{{ STATIC_URL|escapejs }}";</script>
<script src="{{ STATIC_URL }}js/myfile.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过调用myfile.js中的STATIC_URL来简单地使用静态URL:
html = '<img src="'+STATIC_URL+'/icons/flags/tn.gif">';
Run Code Online (Sandbox Code Playgroud)
Yuj*_*ita 19
django-compressor 通过将所有必需的JS或CSS压缩到一个文件中并优化文件大小,您可以实现此目的并优化您的站点.
更新:默认情况下,压缩器将使用相对URL转换为绝对URL STATIC_URL.如果您下载开发版本,它会附带一个django模板引擎解析器,它允许您直接在CSS文件中使用所有django模板代码,例如{% static %}标记.
https://github.com/jezdez/django_compressor
TemplateFilter安装后启用in settings.py以通过模板引擎解析js或css文件.
COMPRESS_JS_FILTERS = [
'compressor.filters.template.TemplateFilter',
]
Run Code Online (Sandbox Code Playgroud)
现在任何{% compress js %}块内的JS都将被django模板语言解析...
{% compress js %}
<script src="/my_script.js" type="text/javascript"></script>
{% endcompress %}
// my_script.js
alert('{{ STATIC_URL|escapejs }}');
Run Code Online (Sandbox Code Playgroud)
你问了最好的方法 - 我认为这是最好的.当然比提供动态文件更好.
我认为这补充了@Yuji'Tomita'Tomita的评论,作为一个完整的设置.
这对我有用.
这就是我在django js文件中使用STATIC_URL完全设置django压缩器的方法.
https://github.com/jezdez/django_compressor
pip install django_compressor
Run Code Online (Sandbox Code Playgroud)
将"压缩器"添加到INSTALLED_APPS设置:
INSTALLED_APPS = (
# other apps
"compressor",
)
Run Code Online (Sandbox Code Playgroud)
要在调试模式下测试压缩,请在settings.py中:
COMPRESS_ENABLED = True
Run Code Online (Sandbox Code Playgroud)
如果您使用Django的staticfiles contrib app(或其独立对应的django-staticfiles),您必须将Django Compressor的文件查找器添加到STATICFILES_FINDERS设置,例如使用django.contrib.staticfiles:
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# other finders..
'compressor.finders.CompressorFinder',
)
Run Code Online (Sandbox Code Playgroud)
安装后在settings.py中启用TemplateFilter,以通过模板引擎解析js或css文件.
COMPRESS_JS_FILTERS = [
'compressor.filters.template.TemplateFilter',
]
Run Code Online (Sandbox Code Playgroud)
现在,{%compress js%}块中的任何JS都将被django模板语言解析...
{% load compress %}
{% compress js %}
<script src="/my_script.js" type="text/javascript"></script>
{% endcompress %}
// my_script.js
alert('{{ STATIC_URL|escapejs }}');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8815 次 |
| 最近记录: |