問題タブ [whitenoise]
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.
python - 圧縮された静的ファイルを使用した Django Whitenoise
ホワイトノイズと圧縮された静的ファイル (libsass を含む) を使用して django プロジェクトを実行することができません。以下のリンクで、必要な静的ファイルをオフラインで圧縮することによってのみ可能であると読みました。しかし、dockerコンテナを起動すると、compress
コマンドを実行しています
エラーが発生します:
サイトをリクエストしようとすると、次のエラーが表示されます (予想通り?):
設定は次のとおりです (cookiecutter-django でビルドします。以下の完全なコード ベースのリンクを参照してください)。
それで、インターネットを1日検索した後。私は立ち往生しています...助けや提案をありがとう!
コードベース: https://github.com/rl-institut/E_Metrobus/tree/compress
これはcookiecutter-django-foundationでビルドされています
への次の変更を含みますconfig/setttings/production.py
。
考えられる関連リンク:
- Whitenoise と django-compressor により、圧縮ファイルで 404 が発生する
- Django-Compressor で WhiteNoise を使用できますか?
- HerokuでDjangoの静的ファイルが見つからない(ホワイトノイズあり)
- https://github.com/django-compressor/django-compressor/issues/486
編集
Justinsの回答を使用して解決しました(以下を参照してください。追加の変更があります)。私の間違いは、既に実行中のコンテナーでファイルを圧縮しようとしたことで、上記のエラーが発生しました。次の行で Dockerfile を変更した後 (コマンドが重複していることに注意してくださいcollectstatic
!):
イメージの再構築はすべて魅力的に機能しました:)さらに、上記の設定から逸脱してCOMPRESS_ENABLED=True
、設定/環境ファイルに設定する必要がありました。
django - 404 when GETing from STATIC_URL does not call GET on my fallback View
In my settings.py
, I have STATIC_URL='/static/'
I have a view which I use as a fallback for the static url
which I add it to my urls like so
Next, I want to make sure that the fallback URL is working. When I go to a bad link like localhost/static/garbage
it shows me the Django 404 error page but it claims that it was raised by MyView
.
What's extremely frustrating is I have two apps with the same static files handling. One of the apps trigger my view, the other does not. I cannot tell what's different that's causing the issue. Both are on whitenoise==4.1.x
and django==2.3
django - django ホワイトノイズの除去のテスト
私の django マイクロサービスでは、ホワイトノイズ関連のコードの一部を、CDN レベルで処理する必要があるため不要な他のコードと共にコピーしました。settings.py から削除"whitenoise.middleware.WhiteNoiseMiddleware"
しましたが、他に何かを削除する必要があるかどうかを確認する方法がわかりません。簡単に言えば、マイクロサービスがホワイトノイズを使用しているかどうかを確認するにはどうすればよいですか?
django - Django の collectstatic が Heroku 環境のフォルダーを無視する
私は Django + Vue モノリスを構築しています。私が達成しようとしているリリース パイプラインは、Vue フロントエンドを Django アプリの静的フォルダーに構築しcollectstatic
、サーバーを実行して起動することを想定しています。静的ファイルは WhiteNoise 経由で提供されます。
私のマシンでは完璧に動作します。構築されたフォルダーは、収集された静的ファイルの宛先に配置され、その内容が適切に提供されます。
しかし、Heroku でホストされている場合、このビルドされたオンザフライ フォルダーを除いて、他のすべてが収集されます。アプリstaticfiles
のフォルダーに存在する場合でも、最終的には . static
実行順序が正しいcollectstatic
ことを確認し、フォルダーが正常に構築されたことを確認した後、手動で実行しました。
お気づきかもしれませんが、このフォルダーは .gitignore にありますが、そこから削除しようとしましたが無駄でした。
そのような奇妙な行動の理由は何でしょうか?
ps DEBUG を True に設定し、Django の開発サーバーを介して静的ファイルを提供すると、アプリケーションが動作し、ファイルが正しい場所にあることが再び証明されます。