問題タブ [collectstatic]
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.
django - Django2.0 Collectstatic と管理の問題
Django web application
本番アプリケーションを設定するために、新しいサーバーにデプロイしています。
を構成するために 2 日後、静的ファイルと管理静的ページによると、新しい問題が発生していますApache2
。wsgi
私の本番環境:
- Ubuntu サーバー 16.4
- ジャンゴ 2.0.1
- パイソン 3.5.2
- アパッチ 2.4
- WSGI
私の静的環境:
ご覧のとおり、選択したテーマの機能ですべての静的ファイルを含む静的ディレクトリがあります。
python3 manage.py collectstatic
静的ディレクトリの管理部分に従って静的ファイルをインポートするには、次を作成する必要があります。
私のsettings.pyファイル:
トレースバック:
Django が既存の静的ディレクトリの外に静的ディレクトリを作成する理由がわかりません。許可が拒否されたのはなぜですか?
管理静的要素を静的ディレクトリにインポートするにはどうすればよいですか?
このパスからの静的ファイルを想定しています:.virtualenvs/DSCoreEnv/lib/python3.5/site-packages/django/contrib/admin/static/admin/
python - heroku/モジュールが見つからないというエラーでdjangoアプリをデプロイする際の問題
この問題には非常に多くのトピックがあることは知っていますが、それらは役に立ちませんでした。
Django アプリを Heroku にプッシュしようとしていますが、転送中に次のメッセージが表示されます。ModuleNotFoundError : No module named 'dashboard_app.settings'
ビルドが次を実行しようとしているときに発生します。python manage.py collecstatic
アプリ ディレクトリの名前を変更しましたが、設定のすべてを変更しました。コマンドを含め、すべてがローカル側でうまく機能しcollectstatic
ます (下の図の静的ファイルを確認できます)。私は午後中ずっとこれを修正しようとしましたが、成功しませんでした...
管理.py
設定.py
wsgi.py
誰かがこの問題で私を助けることができれば、私は大いに感謝します!
django - Heroku で静的ファイルを収集しようとすると、そのようなファイルまたはディレクトリはありません
Heroku にデプロイしている Django アプリに、javascript、css などを含めるために、ファイルの静的ディレクトリを追加しようとしています。
heroku run python manage.py collectstatic
ストレージは AWS S3 で行われています。この静的ディレクトリを追加しようとする前に、コマンドが正常に機能し、管理サイトのすべてのアセットが AWS S3 バケットに配置された ため、この部分が機能していることがわかります。
基本的に、「コア」と呼ばれるプロジェクトのメイン アプリケーションと同じレベルに「static」というディレクトリを追加しました。collectstatic を実行したときに、このディレクトリ内のファイルが同様に AWS S3 バケットの「静的」の下に配置されることを期待していました。
しかし、これはアプリを Heroku にデプロイしようとすると得られるものです...
また、collectstatic コマンドを手動で実行すると、別の欠落しているディレクトリが表示されます。「アプリ」という名前のアプリはなく、設定ファイルに「アプリ」についての言及がないことに注意してください。
これは私のsettings.pyファイルです:
更新 1:.gitignore
ファイルを設定しstatic
てstaticfiles
リスト したことを忘れていました。そのため、アップロードするファイルがないかのように動作していました。それらの行を削除すると、.gitignore
それは先に進みました。
ここで問題になるのは、予想どおり、ファイルが AWS S3 バケットに保存されない理由です。staticfiles
代わりに、 /tmp の下のディレクトリに移動しているようです。何が起こっているかは次のとおりです。
更新 2: AWS に保存されなかった理由の少なくとも 1 つはwhitenoise.storage.CompressedManifestStaticFilesStorage
、設定ファイルで設定した AWS ストレージ ミドルウェアではなく、WhiteNoise ローカル ファイル ストレージ ( )を使用したかったためであることが判明しました。
原因は、設定ファイルの末尾にある次の行でした。
STATICFILES_STORAGE
その行は私の変数をオーバーライドします。だから私はそれを次のように変更しました:
これで解決すると思っていましたが、collectstatic はまだSTATICFILES_DIRS
AWS S3 バケットにあるファイルを入れていません。Heroku サーバーで次のコマンドを実行しました。
そして、次の出力を得ました:
少なくとも今は、ファイルをローカルにコピーするだけではありません。しかし、まだ AWS にコピーされたファイルはありません。--clear
旗でも やってみましたが、ダイスはありませんでした。
[ちなみに、後者のコマンドは何らかの理由でプロジェクト設定ファイルをソースしなかったため、django-admin
ではなくコマンドを使用する必要がありました!]python manage.py collectstatic
これは非常に長くなってしまったので、おそらくこの時点では独り言を言っているにすぎませんが、記録として、私が今直面している問題は、今でも、collectstatic が期待どおりに動作しないのはなぜですか、私が持っているファイルを配置することです私STATICFILES_DIRS
のAWS S3バケットに?