2016-10-28 7 views
0

静的ファイルは、静的ファイルに関連するアプリケーションディレクトリの下に置いています。例えば Djangoサーバーの実行時に静的ファイルを管理する方法は?

image.jpgはexmapleapp下テンプレートのために使用されます。ディレクトリ内のimage.jpgファイルを探します。/project/exampleapp/static/image.jpg

Debug=Trueの設定では、Dajngoは静的ファイルをdjango.contrib.staticfilesによって自動的に見つけます。あなたはprojojectディレクトリ/project/static/静的ファイルを置く場合は、settings.pyにSTATICFILES_DIRS = []を設定することができますか(手動で静的なファイルを提供する場合)urls.pyにurlspatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)のように追加

これまで、開発の権利で何も問題はありますか?しかし、あなたが展開するには、あなたがする必要がありますcollectstatic.私は今から混乱しています。

これは私が最初に考えたものです。

step1:DEBUG = Trueを設定してローカルでコードをテストしてテストします。 git repoにコードを保存し続けます。

step2:サーバーにコードを展開する準備ができました。あなたのレポをクローンし、djangoフレームワーク(エイリアス静的、WSGIデーモンプロセス)を正しく実行するためのApacheサーバを設定します。あなたはpython manage.py collectstaticをApacheサーバで静的ファイルに提供します。

step3:コードを改善し、この改善をテスト済みサーバーのコードに適用するために、ローカルで作業を続けます。

私は混乱して質問を受けました。

:もしあなたが配置用にcollectstaticを実行すると、各アプリケーションフォルダに分散しているすべての静的ファイルを持つ静的フォルダ(STATIC_ROOT設定に従います)があります。

ローカルでcollectstaticを実行し、すべてを収集する静的フォルダのみをサーバーに送信しますか?またはApacheサーバーの静的エイリアス設定に従ってサーバーでcollectstaticを実行しますか?

Q2:ローカルではDEBUG = FalseとALLOWED_HOSTS = [サーバーIP]を変更し、git repoでコードを保存してサーバーにプルしますか?

よく、今はgithubで開発中に作業して、Django設定のgithubでサーバーにデプロイするのと混同しています。

私の質問を明確に理解できない場合は教えてください。

答えて

0

開発モードで静的ファイルを提供する場合は、static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)を使用しています。しかし、生産では、(意味DEBUG = False)それは空のリストになります。 (staticは空のリストを返します)。そして、あなたは開発やproduction.Its意思を使用することができますで、 collectstatic STATIC_ROOTに、すべての静的ファイルをコピーすることです。だから

Q1:誰もがウェブサーバ(Apacheのは、nginxの)を介して、静的なファイルを提供するために、製造上のcollectstatic行う

質問2:生産と開発のために異なるsettingsファイルを書いてください。あなたはここで見ることができます。How to manage local vs production settings in Django?

関連する問題