コーディングはまったく新しいので、簡単な質問でごめんなさい。 python manage.py collectstatic
を実行すると、この属性エラーが発生します。 settings.py
を編集しています。私はDjango 1.5.1とPython 2.7.5です。助けていただければ幸いです(もう一度)。
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py", line 61, in isabs
return s.startswith('/')
AttributeError: 'Tuple' object has no attribute 'startswith'
もちろん、私はposixpath.py
をいじったことはありません。
settings.py
(マイナスdb情報など)の内容は次のとおりです。
MEDIA_ROOT = "os.path.join(os.path.dirname(os.path.dirname(__file___))", "static", "media"
MEDIA_URL = '/media/'
STATIC_ROOT = "os.path.join(os.path.dirname(os.path.dirname(__file__))", "static", "static-only"
STATIC_URL = '/static/'
STATICFILES_DIRS = (
"os.path.join(os.path.dirname(os.path.dirname(__file__))", "static", "static",
)
STATICFILES_FINDERS = (
'Django.contrib.staticfiles.finders.FileSystemFinder',
'Django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'Django.contrib.staticfiles.finders.DefaultStorageFinder',
)
SECRET_KEY = 'xxxxxxxxx'
TEMPLATE_LOADERS = (
'Django.template.loaders.filesystem.Loader',
'Django.template.loaders.app_directories.Loader',
# 'Django.template.loaders.eggs.Loader',
)
MIDDLEWARE_CLASSES = (
'Django.middleware.common.CommonMiddleware',
'Django.contrib.sessions.middleware.SessionMiddleware',
'Django.middleware.csrf.CsrfViewMiddleware',
'Django.contrib.auth.middleware.AuthenticationMiddleware',
'Django.contrib.messages.middleware.MessageMiddleware',
'Django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF = 'mvp_landing.urls'
WSGI_APPLICATION = 'mvp_landing.wsgi.application'
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(os.path.dirname(__file__)), "static", "templates",
)
INSTALLED_APPS = (
'Django.contrib.auth',
'Django.contrib.contenttypes',
'Django.contrib.sessions',
'Django.contrib.sites',
'Django.contrib.messages',
'Django.contrib.staticfiles',
'Django.contrib.admin',
'Django.contrib.admindocs',
'south',
'join',
'Django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
あなたはそれを間違っています。コードを引用符で囲むべきではありません。 ここでそれがどうあるべきかを見てください
次のようになります。
STATICFILES_DIRS = (
os.path.join(os.path.dirname(__file__), "static")
)
また、MEDIA_ROOT
およびSTATIC_ROOT
設定に属します。
@chris
STATIC_ROOTとMEDIA_ROOTSは絶対パスであり、タプルにすることはできないため、「、」(カンマ)は許可されません。したがって、絶対パスを「/ your/static/file/abstract/path」と記述します。
これがお役に立てば幸いです:)
STATIC_ROOT = os.path.join(BASE_DIR, "static_in_pro","static_root"),
静的ルートの末尾のコンマを削除してください
STATIC_ROOT = os.path.join(BASE_DIR, "static_in_pro","static_root")
概要
Django(私と同じように)が初めてでこの問題が発生した場合は、Djangoの2つのスクープという本を調べることをお勧めします。特に、アプリのレイアウトが優れたGitHubテンプレートがあります。 ここ 。特に、以下を確認します。
オクトツリー(オプション)
ちなみに、ソース管理としてGitHubを使用する場合は、これを取得することを強くお勧めしますChrome Octotreeという拡張機能が利用可能です ここ 。これにより、任意のフォルダーレイアウトを表示できます。 GitHubリポジトリ。