7

これは新しいプロジェクト構造です(Django 1.4リリースノートから)。

私のプロジェクト
|-manage.py
|-myproject
| |-__init__.py
| |-settings.py
| |-urls.py
| `-wsgi.py
`-世論調査
    |-__init__.py
    |-models.py
    |-tests.py
    `-views.py

よくわからないのは、STATIC_ROOTをポイントする必要があるかどうかです。

myproject/myproject/static/(settings.py、urls.pyと一緒に...)

また

トップレベルディレクトリmyproject/static(myproject、myapp1、myapp2の隣)?

4

3 に答える 3

7

STATIC_ROOTPythonのインポートとは関係がないので、完全にあなた次第です。通常、myproject/static/このようos.path.join(PROJECT_ROOT, 'static/')に設定では、より簡単です。

San4ezが提案したように更新し、settings.py内にメモします

# Absolute path to the directory static files should be collected to.  
# Don't put anything in this directory yourself; store your static files  
# in apps' "static/" subdirectories and in STATICFILES_DIRS.  
# Example: "/home/media/media.lawrence.com/static/"  

構造に応じて、pollアプリの静的ファイルをに配置することをお勧めします。poll/static/

于 2012-04-16T05:44:04.313 に答える
2

静的に適した場所である@okmに同意しmyproject/static/ますが、画像、css、jsをアプリ内に保存することもできますmyproject/polls/mediadjango.contrib.staticfilesコマンドを使用してアプリを構成し、静的コピーmedia元をSTATIC_ROOTにコピーする必要があります

python manage.py collectstatic

このアプローチの利点は、静的にアプリを広めることができ、アプリを他のプロジェクトで自由に使用できることです。

于 2012-04-16T06:04:39.207 に答える
1

STATIC_ROOTstaticfilescontribアプリがすべての静的ファイルを収集して保存するファイルパスです。アイテムを集める場所です、それだけです。重要なのは、この場所が一時的なストレージであり、主にアプリをデプロイ用にパッケージ化するときに使用されることです。

アプリは、にリストされているアプリでstaticfiles呼び出されたディレクトリから収集するアイテムを検索し、さらに、にリストされている追加のファイルパスの場所を検索します。staticINSTALLED_APPSSTATICFILES_DIRS

私のプロジェクトでは、静的ファイルや、展開時にのみ使用されるその他のさまざまなファイルに使用deployするフォルダーを作成するディレクトリを作成します。wwwこのディレクトリは、プロジェクトの最上位にあります。

変数は、ユーザーが書き込み権限を持っている任意の場所を指すことができます。プロジェクトディレクトリにある必要はありません。

于 2012-04-16T06:17:38.067 に答える