3

当我们将 Django 应用程序部署到 Heroku 时,我们想使用我们熟悉的包GruntJS ( http://gruntjs.com/ ) 来缩小 JS 并将 LESS 编译为 CSS(以及其他东西)。有没有人想出一个聪明的做法呢?

经过几个小时的自我检查后,我找不到任何东西。

4

2 回答 2

2

尝试使用带有COMPRESS_PRECOMPILERS设置的django_compressor 。

COMPRESS_PRECOMPILERS = (
    ('text/less', 'lessc {infile} {outfile}'),
)

模板:

{% compress css %}
<link type="text/less" rel="stylesheet" href="/static/css/styles.less" charset="utf-8">
<style type="text/less">
@color: #4D926F;

#header {
  color: @color;
}
</style>
{% endcompress %}
于 2013-10-28T21:13:07.077 回答
1

django-grunt项目看起来很有希望。不过,我自己还没有尝试过 - 乍一看,它似乎不支持在Yeoman webapp中更快地开发的漂亮的 grunt development watch-server 工作流程(至少它没有记录在他们的 README 中)。

对于我当前的开源项目,我创建了一种我仍在迭代的 hacky 解决方案,但它确实有效:

  • 我将我的静态文件和基本模板作为一个普通的 Yeoman 脚手架 Grunt 项目保存在它自己的 GitHub存储库中,使用buildcontrol将构建的文件导出到单独的分支中以进行 Heroku 部署
  • Django 应用程序是一个正常布局的 Django 应用程序,具有一些脚本魔法将前端代码的开发或生产版本链接到我的静态文件夹中(我可以让 grunt 服务器运行以快速迭代前端代码)
  • 为了部署到 Heroku,我使用了一个经过最少修改的 python buildpack,它获取前端 repo 的生产分支并使用上述脚本将其链接起来(我尝试在 Heroku 上使用 grunt 构建它,但获取所有 npm 依赖项需要很长时间每次,所以我发现buildcontrol效率更高)

更新:我一直在迭代使所有内容都在这个项目的单个存储库中工作。

于 2014-01-28T11:58:04.927 回答