我有一个制作和本地DJANGO开发环境。为了将产品推向生产,我们有一个部署程序,可以缩小和压缩所有CSS和JS文件。
要在制作中为他们服务,我需要称他们为
<link rel="stylesheet" href="{{ STATIC_URL }}css/filename.min.css.gz">
然而,在开发过程中,我希望提供正常的css文件(这样我每次保存时都不需要重新缩小和gzip):
<link rel="stylesheet" href="{{ STATIC_URL }}css/filename.css">
有没有办法通过向部署者添加内容来实现和自动化这种行为?还有其他一些解决办法(如果可以添加.gz,我可以删除.min扩展名。干净利落的方式?
我想要注意我知道我可以实现一些html-parser,它会在每次部署时添加它,但我正在寻找一个整洁且面向django的解决方案。
答案 0 :(得分:1)
像往常一样,有一个Django包!我用了两个:
django-compressor:http://django-compressor.readthedocs.org/en/latest/ django-pipeline:https://django-pipeline.readthedocs.org/en/latest/
我开始使用django-pipeline,但最近已经转向使用压缩器。看到文档,我相信一个将是你正在寻找的。祝你好运!
答案 1 :(得分:1)
我喜欢@Nursultan的想法。要强制执行此操作,您可以像这样编写上下文处理器:
# On yourapp.context_processor.py
from django.conf import settings
def debug_set(request):
return {'debug_set': settings.DEBUG}
# On your settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
.
.
.
'yourapp.context_processors.debug_set',
)
# On your templates
{% if debug_set %}
<link rel="stylesheet" href="{{ STATIC_URL }}css/filename.css">
{% else %}
<link rel="stylesheet" href="{{ STATIC_URL }}css/filename.min.css.gz">
{% endif %}
答案 2 :(得分:0)
我从未遇到过这个问题,但我想出了这两个解决方案:
settings.py
进行生产和开发。但它需要*.min.js
具有相同的名称并更改minifier的配置。或者使用全局变量并随处写入
{% if development_stage %}
<link>
{% else %}
<link>
{% endif %}