Django-compressor: これをHerokuで機胜させる方法はありたせん

䜜成日 2014幎03月06日  Â·  24コメント  Â·  ゜ヌス: django-compressor/django-compressor

Webを怜玢するこずは、これをherokuで機胜させるための簡単な方法ではないようです。

私は、ファむルのherokuが掚奚する方法であるように、すべおをS3に眮くこずが進むべき道であるず考えたした。 それから私はこれを読みたしたhttp //django-compressor.readthedocs.org/en/latest/remote-storages/
これはすべお問題ありたせんが、それを実行した埌は、結果が䜕であるかはわかりたせん。 collectstatic、compress、䞡方を実行したすか ロヌカルで実行したすか、それずもherokuプッシュフックに実行させたすか たたは、ずにかくheroku環境にlessccoがないため、実際にherokucollectstaticを無効にしたすか

したがっお、少なくずもこれはこのペヌゞのドキュメントのバグになりたすhttp: //django-compressor.readthedocs.org/en/latest/remote-storages/

原則ずしお、すべおをオフラむンで生成しおバヌゞョン管理にチェックむンする堎合、これはherokuでも機胜するはずです。

heroku環境でのノヌド以䞋のセットアップに関するこれらの蚘事がありたすが、それらは少し過剰に芋え、実際には機胜したせん。
http://marklmiddleton.com/2013/using-less-with-django-on-heroku/
http://www.sore.nu/blog/2012/dec/30/fieldguide-django-bootstrap-less-coffeescript-and-/

ここに䜕か足りないものがありたすか 昚日この日に半日を費やした埌、私はあきらめおいたす明確な代替手段は、暙準のフロント゚ンドツヌルを䜿甚しおすべおをロヌカルでコンパむルするこずです。

deployment

最も参考になるコメント

OK、これが私のために働いおいお、dynoの再起動を生き延びたものです。 ここでの私の䞻な目暙は、1アセットパむプラむンのためだけにruby/JSビルドパックの状況党䜓を远加する必芁がないこずでした。 2S3を蚭定する必芁はありたせん。 3ロヌカル手順を必芁ずせずに、展開の䞀郚ずしお自動的に実行されるようにしたす。

それで

1Herokuの指瀺に埓っおホワむトノむズを構成したす。

2芁件にdjango-libsassを远加したす。

3蚭定ファむル

INSTALLED_APPS += ('compressor',)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder',
)

COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True

COMPRESS_PRECOMPILERS = (
    ('text/x-sass', 'django_libsass.SassCompiler'),
    ('text/x-scss', 'django_libsass.SassCompiler'),
)

4を含むbin/post_compileファむルを远加したす

python manage.py compress
python manage.py collectstatic --noinput

これはpost_compileにある必芁があるこずに泚意しおください。䞀時的なファむルシステムのため、リリヌスタスクにするこずはできたせん。リリヌスタスクで実行した堎合、圧瞮䞭に生成されたファむルは残りたせん。しかし、post_compileで実行するず機胜するようです。 dynoの再起動を生き残るために。

党おのコメント24件

バグではありたせん;

しかし、倚くの質問がありたした;

  • ほずんどのロヌドシナリオでは、herokuで静的ファむルを提䟛するためにdj-static  heroku docsに衚瀺されおいるたたはwhitenoiseを䜿甚したす。
  • すべおが正垞に構成されおいる堎合、コヌドをプッシュするず、herokuはcollectstaticを実行したす
  • オフラむン圧瞮を远加する堎合は、compressを実行するpost_compileスクリプトここを参照を远加できたす。
  • オフラむンにしないでください-ロヌカルで圧瞮しおください。herokuにこれを任せおください。
  • lesscをherokuにむンストヌルするのは別のタスクです。私もグヌグルで詊しおみる必芁がありたす。しかし、最初のリンクは有望に芋えたす少なくずもpost_compileスクリプト。

䞊蚘の「静的ファむルの䜿甚」の䞋にリンクされおいるセクションでは、独自のストレヌゞサブクラスを䜜成する必芁がある理由や、䜜成埌に䜕をする必芁があるのか​​ただわかりたせん。

私はherokuにlesscをむンストヌルしようずしたしたが、䞎えられたpost_compileスクリプトが盎接機胜しない堎合、これはデバッグするのが非垞に面倒であり、率盎に蚀っお、すべおずキッチンシンクを備えたコンテナヌを䜜成するのは良い考えずは思えたせん。

これがただどれほど難しいかに驚いおいたすが、誰かがここで䜕が起こっおいるのか教えおくれたらhttp: //django-compressor.readthedocs.org/en/latest/remote-storages/
ドキュメントパッチを远加させおいただきたす。

django-compressor、scssコンパむル、bower、およびその他の倚くのものをサポヌトするdjango-skelのフォヌクを䜜成したしたそしお、herokuで実行したす。 誰かがそれを芋るこずに興味がありたすか

人々は間違いなくうたくいくものを芋たいず思うでしょう

@therippa 私もそれを芋たいず思いたす。

Whitenoiseはアプリがロヌドされたずきにのみ静的フォルダヌをチェックするため、CompressorのオンラむンモヌドはHerokuでは機胜したせん問題680に関する私のコメントを参照しおください。 本番環境でコンプレッサヌを䜿甚するには、オフラむンモヌドで䜿甚し、Herokuのコンパむル埌フックを䜿甚しおアプリが読み蟌たれる前にpython manage.py compressを実行する必芁があるず思いたす。 Herokuは自動的にcollectstaticを実行するので、問題はありたせん。 heroku-django-cookbookが圹に立ちたした。 Django / HerokuアプリでTypeScriptを䜿甚しおいるので、ノヌドなどもむンストヌルする必芁がありたした。これは、コンパむル埌のフック、カスタムpipパッケヌゞ、たたはカスタムビルドパックを介しお可胜です。 コンパむル埌のフックが最も簡単な方法だず思いたす。

sekizaiず組み合わせおこの問題が発生したため、オフラむン圧瞮を䜿甚するこずは実際にはオプションではありたせんでした。 しかし、この問題は実際にはホワむトノむズを拡匵するこずで非垞に簡単に修正できるので、ここに私の解決策がありたす https ://gist.github.com/Chronial/45ce9f33615a3b24c51f

誰かがそれにいく぀かのテストずドキュメントを远加しお、ホワむトノむズに適切なPRを送信したいず思うかもしれたせんか :)

泚事前生成たたはherokuが必芁な堎合は、サヌバヌを起動しお、 post_buildフックでいく぀かのリク゚ストを送信できたす。

Whitenoiseのドキュメントでは、 http //whitenoise.evans.io/en/stable/django.html#django-compressorでdjango-compressorに぀いお蚀及しおいたす。

わかった。 これは私にずっお芋事に機胜したした
ルヌトロヌカルディレクトリ別名リポゞトリ内にディレクトリbin/を䜜成し、その䞭にpost_compileずいう名前のファむルを䜜成したした。 post_compileファむル内に、これらのデヌタをコピヌしお貌り付けたした。
git add --all 、 git commit -m 'testing post_receive hook in Heroku' 、 git push heroku masterしたした。
Herokuによるcollectstaticコマンドの自動実行埌、 python manage.py compressが実行され、1぀のファむルに圧瞮されたすべおのファむルを含むディレクトリが䜜成されたした。

remote:      $ python manage.py collectstatic --noinput
remote:        1247 static files copied to '/app/staticfiles'.
remote: 
remote: -----> Running post-compile hook
remote: -----> Compressing static files
remote:        Found 'compress' tags in:
remote:         /app/templates/base/base.html
remote:         /app/templates/info/areas.html
remote:         /app/templates/info/profile.html
remote:        Compressing... done
remote:        Compressed 1 block(s) from 3 template(s) for 1 context(s).

あなたがOfflineCompressionErrorsを芋おいるなら、人々がより倚くの回避策を提案しおいるhttps://github.com/django-compressor/django-compressor/issues/443もチェックしおください。

831の堎合、機胜したのはロヌカルでオフラむン圧瞮を実行し、manifest.jsonを含む結果をherokuにプッシュするこずです。 ただし、S3はありたせん。

これが䜜者のために働く別の蚭定です https //github.com/django-compressor/django-compressor/issues/855#issuecomment -303294202

OK、これが私のために働いおいお、dynoの再起動を生き延びたものです。 ここでの私の䞻な目暙は、1アセットパむプラむンのためだけにruby/JSビルドパックの状況党䜓を远加する必芁がないこずでした。 2S3を蚭定する必芁はありたせん。 3ロヌカル手順を必芁ずせずに、展開の䞀郚ずしお自動的に実行されるようにしたす。

それで

1Herokuの指瀺に埓っおホワむトノむズを構成したす。

2芁件にdjango-libsassを远加したす。

3蚭定ファむル

INSTALLED_APPS += ('compressor',)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder',
)

COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True

COMPRESS_PRECOMPILERS = (
    ('text/x-sass', 'django_libsass.SassCompiler'),
    ('text/x-scss', 'django_libsass.SassCompiler'),
)

4を含むbin/post_compileファむルを远加したす

python manage.py compress
python manage.py collectstatic --noinput

これはpost_compileにある必芁があるこずに泚意しおください。䞀時的なファむルシステムのため、リリヌスタスクにするこずはできたせん。リリヌスタスクで実行した堎合、圧瞮䞭に生成されたファむルは残りたせん。しかし、post_compileで実行するず機胜するようです。 dynoの再起動を生き残るために。

@thatandromeda゜リュヌションは私のために働きたした、どうもありがずう

@thatandromedaこの゜リュヌションは私が探しおいるものかもしれたせん12時間たくさんのこずを詊した埌。 bin / post_compileは正確にどこに行きたすか どうすれば远加できたすか herokuに䜿甚するように指瀺するにはどうすればよいですか

@manikos @thatandromeda $$ 1 compress $の前たたは埌、あるいはその前埌の䞡方でcollectstaticを実行する必芁がありたすか 私の圧瞮管理コマンドは、ファむルが芋぀かりたせんず蚀っおいたす

ValueError: The file 'css/font-awesome.min.css' could not be found with <whitenoise.storage.CompressedManifestStaticFilesStorage object at 0x7f3e3fc3b828>.

@typistX herokuに䜕も䌝える必芁はありたせん。プロゞェクトのルヌトリポゞトリにbinずいうディレクトリがあるかどうか、 post_compileずいうファむルがあるかどうかファむルなしが自動的に怜出されたす。拡匵内郚。

@thatandromedaあなたはこのがらくたを扱っお3日埌に私を救った。 🙏🏌

申し蚳ありたせんが、この苊劎がありたす/私が助けるこずができおうれしいです

@technolingo compressは、collectstaticの埌に実行する必芁がありたす。

@thatandromedaず@manikosの䞡方の゜リュヌションが私のために働いた、ありがずう 😃
これはバグではないこずが確認されおいたすが、Herokuでの展開プロセスに関する情報が䞍足しおいるだけで、ドキュメントのどこかに蚘茉されおいるず圹に立ちたす。

ドキュメントを改善するプルリク゚ストを確認しおマヌゞさせおいただきたす。 アクティブなメンテナは誰もherokuアカりントを持っおいないので、これは実際には倉曎を提案するナヌザヌ次第です。

ここでは、herokuぞのワンクリックデプロむボタンを歓迎したすか それずも、herokuのデプロむをステップスルヌするドキュメントですか

@ morenoh149私の芋解では、ここで最も必芁なのはドキュメントです。「ワンクリックデプロむボタン」が圹立぀かもしれたせんが、_バグ_を怜玢しおいるずきに、問題が正確に䜕であるかを知りたいず思いたした。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡