問題タブ [django-compressor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1763 参照

django - Djangoアプリのcollectstaticを実行しているときの属性エラー

collectstaticを実行すると、次のエラーが発生します。

ストレージの「AWS_IS_GZIPPED」設定を使用してファイルをgzipで圧縮するまでは、すべて正常に機能します(以下のsettings.pyを参照)。

botoを使用して静的ファイルをS3に送信し、django-compressorを使用して圧縮するdjango-storagesを使用しています。

これが私のエラーの完全なトレースバックです:

これが私のstorage.pyです

これは、 django-compressorのドキュメントから直接取得されます。

私のsettings.pyにも次のものがあります

どんな助けでも大歓迎です。森の中で少し失われました。

0 投票する
0 に答える
405 参照

css - 圧縮された css ファイルの import ステートメントの使用方法

cssファイルを圧縮するためにdjango compressを使用しています。これらは私が「style」に与えた設定です: {

@import cssを編集するたびにランダムに生成されるため、ステートメントを使用してそれを含めるにはどうすればよいですか。

0 投票する
2 に答える
6757 参照

django - 私の LESS @import パスはどうあるべきですか?

シナリオは次のとおりです。

Django 1.3.1 を実行し、staticfiles と django-compressor (最新の安定版) を使用して、とりわけ LESS ファイルをコンパイルしています。

STATICFILES_DIRS(プロジェクト全体の静的リソース用に)静的ファイルにフックされた「資産」ディレクトリがあります。そのディレクトリには「css」ディレクトリがあり、その中に LESS 変数と mixin を含む「lib.less」ファイルがあります。

したがって、物理パスは<project_root>/assets/css/lib.lessであり、 で提供され/static/css/lib.lessます。

アプリの静的ディレクトリの 1 つに、上記のファイルをインポートする必要がある別の LESS ファイルがあります。そのための物理パスは であり<project_root>/myapp/static/myapp/css/file.less、 で提供され/static/myapp/css/file.lessます。

私の最初の考えは:

(つまり、URL に基づいて、 から までのレベルに移動/static/myapp/css/static/、次に までトラバースします/static/css/lib.less)。

FilterErrorただし、それは機能しません。私が考えることができる URL と物理パスのほぼすべての組み合わせを試してみましたが、インポートするファイルを見つけることができなかったため、それらすべてがテンプレートで s を提供してくれました。

実際のインポートパスがどうあるべきか、誰にもアイデアがありますか?

0 投票する
2 に答える
1067 参照

django - マルチサーバー展開での Django Compressor

私は幸運にもdjango_compressorを発見し、それをスタック内に実装しました。これは多くのサーバーにデプロイされます (現在は 6 台ですが、より小さな仮想マシンをデプロイするにつれて成長しています)。

django_compressor を最高の状態で使用している場合、これはすべてうまくいきます。生の CSS/JS コードの圧縮

ただし、ここで、ある種のプリコンパイラを導入したいとします。この例では、LESS (css) としましょう。このための思考プロセスは非常に単純です。

  • node、npm、および less パッケージをサーバーにインストールします。

  • プリコンパイラへの追加を減らしましょう!

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

これでデプロイすると、サーバーが less ファイルをコンパイルします。すべてが素晴らしいです!

これにさらに 8 つのサーバーを追加して、各サーバーに node、npm、および less をインストールする必要がありますか?

これは何かが正しくないように思われる場所であり、何かが欠けているように感じます. Django コミュニティは以前にもこの問題に遭遇したことがあると思います。

これまでの私の考えは次のとおりです。

  • post-commit フックを使用して、開発者のマシンで CSS をコンパイルします。これは、django_compressor を介して、HTML 内のコンパイル済み静的ファイルにリンクし、リポジトリにはコンパイル済みバージョンとコンパイル済みバージョンの両方が含まれていることを意味します。これに対する私の唯一の欠点は、django_compressor の利点の半分を使用しないことになり、開発者にとって退屈になる可能性があることです?

  • それを吸い上げて、ノード、npm、およびサーバースタックの一部を少なくします。

アップデート

さらに調べてみたところCOMPRESS_OFFLINE、管理コマンドでフラグ (または単に --force) を使用すると、必要なことを実行するオフライン マニフェスト ファイルが生成されるようです (ローカルでのみテストされます)。そのため、デプロイ前のフックを使用してこれを設定することが答えになります。

もちろん、他のアイデアにもまだオープンです:-)

0 投票する
1 に答える
818 参照

django - django-compressorでDjangoのテンプレート変数を使用する

問題は{{ STATIC_URL }}、django-compressorが.jsファイルにコンパイルするcoffeescriptファイルで参照されたときに正しくロードされないことです。

私のdjangoテンプレートには、

stuff.coffee私は持っています

次に、ブラウザでレンダリングされたHTMLは

{{ STATIC_URL }}したがって、私の質問は、Djangoにcoffeescriptファイル内のを認識させるにはどうすればよいですか?助けてくれてありがとう!

0 投票する
2 に答える
448 参照

django - Django と CoffeeScript を Heroku にデプロイする際の奇妙な問題

これは一種の複雑な質問なので、説明するには少し時間がかかります。私は直接的な答えを探しているわけではないので、アドバイスは良いでしょう。多くの CoffeeScript を使用する Django アプリがあります。プロジェクトで CoffeeScript をコンパイルするには、 app を使用していdjango-compressorます。使用するdjango-compressorには、インストールする必要がありnmpます (ノード パッケージ マネージャー)。残念ながらnpmHerokuにはインストールできません。したがって、CoffeeScript が Heroku サーバーに到達する前にコンパイルする必要があります。Fabricそれで、うまく機能しているように見えるセットアップでそれを行いました。

コンパイルされた CoffeeScript を静的ファイルとして取得できますが、実行時まで新しいテンプレートを再生成しない{% compress js %} *** {% endcompress %}ため、テンプレートにはまだタグが含まれているため、問題は発生していません。django-compressor

したがって、アプリを Heroku にデプロイできるように、テンプレート タグを利用してアプリをデプロイする方法についてのアドバイスを探しています。私はそれが多くの部分を持つ質問であることを知っているので、どんなアドバイスでも非常に役に立ちます!

0 投票する
1 に答える
1618 参照

django - S3 上の圧縮ファイルが 403 Forbidden エラーを返すのはなぜですか?

S3 で圧縮ファイルを提供するために django-compressor と django-storages を使用しています (次の手順を使用します: http://django_compressor.readthedocs.org/en/latest/remote-storages/#using-staticfiles )。「圧縮」管理コマンドを実行した後、最初はうまく機能しますが、約 1 時間後に、ファイルに変更を加えていないにもかかわらず、圧縮された css および js ファイルが 403 Forbidden エラーを返します。問題を切り分けることができないようですので、何か助けていただければ幸いです。

私が使用している設定は次のとおりです。

更新: これは、COMPRESS_OFFLINE が True の場合にのみ問題になるようです。False に設定すると、最初のリクエストで作成された圧縮ファイルが正しく機能し、1 時間以上経過しています。ただし、管理コマンドを使用してこれらのファイルを事前に圧縮することをお勧めします。

0 投票する
1 に答える
3075 参照

django - django_compressorを使用してファイルをgzipに圧縮します

django_compressorを使用してjsファイルとcssファイルを圧縮します。結合されたファイルを正常に作成します。ただし、このアプリではファイルを圧縮することもできます。これを有効にするために私は作成しました

私のsettings.pyで。コンプレッサーの作業ディレクトリに、cssとjsのgzipファイルが追加されました。しかし、Firebugでhtmlをチェックした後、gzipファイルはレンダリングプロセス中ではないようです。どうすれば変更できますか?

0 投票する
3 に答える
3084 参照

django - apacheでdjango-compressorを使用する方法は?

私はDjangoCompressorを使用してコーヒー/レスファイルを管理しており、開発に最適ですが、本番環境での展開で機能させるためにいくつかの問題がありました。

私の考えは、おそらく別のサーバーで静的ファイルをホストするためのapacheを用意することです。ファイルを設定COMPRESS_OFFLINE = Trueしていsettings.pyます。

それから私は次のことをします

  • python manage.py compress-これにより、すべての静的ファイルが収集されるディレクトリにディレクトリが追加されますCACHEstatic
  • python manage.py collectstatic-これにより、プロジェクト上のすべてのアプリ(コンプレッサーを使用しないアプリもあります)から静的ファイルがstaticディレクトリに収集されます。
  • staticapacheでホストされるディレクトリをどこかにコピーします。そして、ファイルを提供するためにapacheをセットアップします。
  • 静的サーバーを指すようにファイルstatic_url内の変数を変更します。settings.py

いずれかのページを開くと、サーバーで次のエラーが発生します。これは、ファイルを持っDEBUG = Falseている場合にのみ発生するようです。COMPRESS_OFFLINE = Truesettings.py

TemplateSyntaxError:レンダリング中にOfflineGenerationErrorがキャッチされました:オフライン圧縮が有効になっていますが、キー「777ba26736d046ab043dc151e7e9a060」がオフラインマニフェストにありません。「pythonmanage.pycompress」を実行する必要があるかもしれません。

ディレクトリをチェックするstatic/CACHEと、エラーの内容を確認します。これが私のmanifest.jsonファイルです。

CACHEディレクトリを削除して再実行するpython manage.py compressと、エラーメッセージとマニフェストファイルの両方に新しいIDのセットが表示されますが、エラーのIDがマニフェストに表示されません。

ですから、ここには2つの質問があると思います。なぜ機能しないのですか?これを達成するための適切な方法は何ですか?

ありがとう。