我们假设我有一个project或two我正在使用Django和twitter bootsrap构建。所述项目在git存储库中进行了版本化。
目前,我和大多数人一样,(或者只会)download bootstrap,执行一些cp -r
和git add
命令并愉快地编写代码。
但现在我不再思考了。
collectstatic
。所以:必须有一个更优雅,更简单更好的方式来做这件事因为我所做的一切都将是对 DRY
答案 0 :(得分:3)
您可以在django中安装此应用并使用
pip install -U django-staticfiles-bootstrap
./manage.py collectstatic
将最新的引导代码拉入您的项目:)
答案 1 :(得分:1)
这可能不是你正在寻找的,因为这个策略中有一个丑陋的部分,但值得一提的是恕我直言。
这是site_base.html
模板可以包含的内容:
{% if debug %}
<link rel="stylesheet" type="text/css" href="{% static 'autocomplete_light/style.css' %}" />
<link href="{{ STATIC_URL }}bootstrap/less/bootstrap.less" charset="utf-8" type="text/less" rel="stylesheet">
<script type="text/javascript">less = {}; less.env = 'development';</script>
<script type="text/javascript" src="{{ STATIC_URL }}less.js" ></script>
{% else %}
{% compress css %}
<link rel="stylesheet" type="text/css" href="{% static 'autocomplete_light/style.css' %}" />
<link href="{{ STATIC_URL }}bootstrap/less/bootstrap.less" charset="utf-8" type="text/less" rel="stylesheet">
{% endcompress %}
{% endif %}
好吧,这是丑陋的部分:它不是很干......但它确实很有用。如您所见,您需要debug context processor。
这就是您的设置的样子:
COMPRESS_PRECOMPILERS = (
('text/less', 'recess --compile {infile} > {outfile}'),
)
注意:当我这样做时,bootstrap只编译在凹陷较少的编译器上。也许现在支持其他编译器,但我不打赌它。
要直接从其repo重新使用bootstrap,请使用git submodules。
假设我们创建了一个custom.less
脚本,它应该能够重用bootstrap的东西,即。变量,类,混合等等。
我们现在遇到一个问题:编译器必须同时解析bootstrap的东西和custom.less
。否则,在编译custom.less
时,编译器如何知道bootstrap的变量?
因此,您可以在custom.less
中导入bootstrap.less
,但这会导致修改您的仓库外的文件(请记住:bootstrap.less来自子模块)。
解决方案:创建master.less
,同时导入bootstrap/less/bootstrap.less
和custom.less
。不要忘记在master.less
中关联bootstrap.less
而不是site_base.html
。