繁体   English   中英

Django + twitter bootstrap + github最优雅的方式是什么?

[英]Django + twitter bootstrap + github what's the most elegant way to do this?

让我们假设我有一两个 项目 ,我正在使用Django和twitter bootsrap构建。 所述项目在git存储库中进行了版本控制。

目前,我和大多数人一样,将会(或者只是) 下载引导程序 ,执行一些cp -rgit add命令并愉快地编写代码。

但现在我不再思考了。

  • 一切都在git上。
  • git支持subrepos。
  • Django已经collectstatic
  • 这是2013年和持续整合等。 是十年的流行语

因此: 必须有这样做的一切,我会做将是一个可怕的违反 的更优雅,简单地更好的办法

您可以在django中安装此应用程序并使用

pip install -U django-staticfiles-bootstrap 
./manage.py collectstatic 

将最新的bootstrap代码拉入您的项目:)

https://github.com/Apreche/django-staticfiles-bootstrap

这可能不是你想要的,因为这个策略中有一个丑陋的部分,但值得一提的是恕我直言。

概观

  1. 在浏览器中调试模式编译较少以进行开发。 这使您的集成商能够更快地工作,并在浏览器中查看语法错误报告,并使开发变得非常棒。
  2. 使用django-compressor进行生产,将所有较少的内容预编译成css并使性能更加出色。
  3. 能够在较少的脚本中重用:引导类,变量等等......否则什么不太好? 问题是你必须让你的编译器在同一次运行中编译bootstrap和你自己的少脚本。

Django级别的基本策略

这是您的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 %}

好吧,这是丑陋的部分:它不是很干......但它确实很有用。 如您所见,您需要调试上下文处理器

这就是您的设置的样子:

COMPRESS_PRECOMPILERS = (
    ('text/less', 'recess --compile {infile} > {outfile}'),
)

注意:当我这样做时,bootstrap只编译在凹陷较少的编译器上。 也许现在支持其他编译器,但我不打赌它。

基本的git策略

要直接从repo重用bootstrap,请使用git子模块

较低层次的基本战略

假设我们创建了一个custom.less脚本,它应该能够重用bootstrap的东西,即。 变量,类,mixins等。

我们现在遇到一个问题:编译器必须同时解析bootstrap的东西和custom.less 否则,在编译custom.less时,编译器怎么能知道bootstrap的变量呢?

因此,您可以在bootstrap.less导入custom.less ,但这会导致在repo之外修改文件(请记住:bootstrap.less来自子模块)。

解决方案:创建一个master.less ,它导入bootstrap/less/bootstrap.lesscustom.less 不要忘了链接master.less而不是bootstrap.lesssite_base.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM