2011-08-16 9 views
8
私は静的な構造を理解しようとしています

は追求するために1.3回の試行をジャンゴは、Djangoの静的な構造

# 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/" 
STATIC_ROOT = BASE_PATH+'/static/' 

# URL prefix for static files. 
# Example: "http://media.lawrence.com/static/" 
STATIC_URL = '/static/' 

# URL prefix for admin static files -- CSS, JavaScript and images. 
# Make sure to use a trailing slash. 
# Examples: "http://foo.com/static/admin/", "/static/admin/". 
ADMIN_MEDIA_PREFIX = '/static/admin/' 

# Additional locations of static files 
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static". 
    # Always use forward slashes, even on Windows. 
    # Don't forget to use absolute paths, not relative paths. 
) 

私はmanage.pyコマンドcollectstaticを使用している場合、それはコレ:私は以下のように行ったsettings.pyでこれらの設定を設定する必要があり(BasePath変数は、現在のディレクトリへのショートカットのパスです) (メインプロジェクトディレクトリ内の)「静的」ディレクトリにすべての静的ファイル(adminファイルを含む)を置き換えます。

しかし、STATICFILES_DIRSタプルにそのディレクトリを追加するまでは、しかし、私はSTATIC_ROOTディレクトリ設定を変更する必要があります。それ以外の場合は、同じエラーになることはありません。

私はそれを機能させるために何をしなければならないと思っていますか?

+1

だから、あなたのファイルが実際に格納されているディレクトリを 'STATIC_DIRS'に置き、' STATIC_ROOT'を__empty directory__にポイントしましたか?Djangoは静的ファイルを収集できますか? – agf

答えて

-5

方法について:

STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static". 
    # Always use forward slashes, even on Windows. 
    # Don't forget to use absolute paths, not relative paths. 
    STATIC_ROOT, 
) 
+1

これは正確に障害のある部分はありません... ImproperlyConfigured:STATICFILES_DIRS設定にSTATIC_ROOT設定が含まれてはなりません – RoundTripToNowhere

+0

明示的にこのオプションで例外が発生します! –

4

STATICFILES_DIRSは、プロジェクトに非特定の静的ファイルが存在しないことを宣言するために使用する設定です。 STATIC_ROOTは、静的ファイルが収集されるときに配置される場所です。 django's docsから

:。

は「あなたのプロジェクトは、おそらく、特定のアプリケーションに関連付けられていない静的な資産を持っていますSTATICFILES_DIRS設定は静的ファイルをロードするときにチェックするために、ファイルシステムディレクトリのタプルです。これは、検索パスです。 STATICFILES_DIRSドキュメントのこの追加パスのリストを拡張する方法を参照してください。

"静的な管理コマンドを使用するときにスタティックファイルを収集するファイルシステムのパスを指すようにSTATIC_ROOT設定を設定してください。

地域の発展のために
10

settings.pyにこの構造これにより

Project 
    Project (project directory with settings.py etc..) 
     stylesheets 
    someapp 
    static 
     base.css 

を試してみてください。

import os 
ROOT_PATH = os.path.dirname(__file__) 
STATIC_ROOT = os.path.join(ROOT_PATH, 'static') 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    os.path.join(ROOT_PATH, 'stylesheets'), 
) 

あなたは、スタイルシートが表示されるはずですpython manage.py runserverでローカルサーバーを実行し、http://localhost:8000/static/base.css

に行きます。

関連する問題