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 には記載されていません)。

私の現在のオープン ソース プロジェクトでは、私はまだ反復中のハック ソリューションのようなものを作成しましたが、うまくいきます。

  • 静的ファイルとベース テンプレートを通常の Yeoman でスキャフォールディングされた Grunt プロジェクトとして独自の GitHub リポジトリに保持し、 buildcontrolを使用してビルド ファイルを Heroku デプロイ用の別のブランチにエクスポートします。
  • Django アプリは通常レイアウトされた Django アプリであり、フロントエンド コードの開発バージョンまたは実稼働バージョンを静的フォルダーにリンクするためのスクリプト マジックがあります (フロントエンド コードをすばやく反復処理するために、grunt サーバーを実行し続けることができます)。
  • Heroku にデプロイするには、最小限に変更された Python ビルドパックを使用します。このビルドパックは、フロントエンド リポジトリの運用ブランチをフェッチし、前述のスクリプトを使用してリンクします (Heroku で grunt を使用してビルドしようとしましたが、すべての npm 依存関係をフェッチするのに時間がかかりました毎回なので、buildcontrolの方がはるかに効率的であることがわかりました)

更新:このプロジェクトの単一のレポですべてを機能させることを繰り返しています。

于 2014-01-28T11:58:04.927 に答える