5

external/bower_components/プロジェクトルートの下にbowerコンポーネントをインストールしています。staticインストールされたアプリの一部であるだけでなく、追加の静的ファイルもあります。django-pipeline を使用して、bower_components他の静的ファイルをそのままにして、すべての静的ファイルを縮小しようとしています。

私の問題は、django-pipeline を使用して bower コンポーネントを縮小すると同時に、すべての bower パッケージを宛先ディレクトリにコピーしない方法がわからないことです。

settings.py:

STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
    os.path.join(os.path.dirname(__file__), '..', 'external'),
)

STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'

PIPELINE = True

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'pipeline.finders.PipelineFinder',
)

を実行するpython manage.py collectstaticと、入れたいものすべてstaticfiles(静的ベースにあったものと、bower から引き込まれたものの縮小版) に加えて、bower にあるすべてのパッケージの完全なソースができあがります。これはエンドユーザーの観点からは機能しますが、実際には不要なジャンクがたくさんあります。

これを回避するために、 を試しpython manage.py collectstatic -i bower_componentsました。しかし、この場合、ignore はcollectstaticファイルをコピーしない原因となるだけでなく、django-pipeline がファイルを認識しない原因にもなり、最終的には

カスタムパイプラインファインダーを使用しようとすると、必要なすべての静的スクリプトと css とフォルダーが無視されpipeline.finders.FileSystemFinderます。collectstaticdjango.contrib.adminstatic/

collectstaticdjango-pipeline の組み合わせ/ミニフィケーションが別のグループに注意を向けている間に、 のコピー機能が 1 つのグループに注意を払うことができるように、ケーキを食べて食べる方法はありますか?

これを書いた後、インストールされたアプリのすべてのスクリプトと css を and で明示的に収集して縮小することが答えかもしれないことに気付きましたPIPELINE_CSSPIPELINE_JS、新しいアプリが統合されるたびに異常なオーバーヘッドになるため、それは理想的ではないようです。

4

1 に答える 1

1

はい、ありますが、静的ファインダーを変更して、静的ファインダーを django-pipeline ファインダーを使用するように変更する必要があります。

STATICFILES_FINDERS = (
    'pipeline.finders.FileSystemFinder',
    'pipeline.finders.AppDirectoriesFinder',
    'pipeline.finders.CachedFileFinder',
    'pipeline.finders.PipelineFinder'
)

これにより、関連するファイルのみがコピーされます。

于 2015-05-04T09:42:28.810 に答える