2

django プロジェクトで CSS および JS ファイルを使用できません。

フォルダ構造:

mysite/
mysite/mysite/settings.py
mysite/mysite/templates/base.html
mysite/mysite/assets/css/...

設定.py

PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = 'static'
STATICFILES_DIRS = ()
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)

urls.py

from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',...)

if settings.DEBUG:
  urlpatterns += staticfiles_urlpatterns()

base.html

python manage.py collectstatic を実行すると、以下が返されます。

"Your STATICFILES_DIRS setting is not a tuple or list; "
django.core.exceptions.ImproperlyConfigured: Your STATICFILES_DIRS setting is not a tuple or list; perhaps you forgot a trailing comma?
4

1 に答える 1

9

手動で何かを入れることはありませんSTATIC_ROOTcollectstatic これは、生産中のごみ捨て場にすぎません。開発中に存在するべきではありません。

すべての静的リソースは、アプリのstaticディレクトリの 1 つに配置する必要があります。または、プロジェクト全体のリソースが必要な場合は、まったく別のディレクトリを作成する必要があります。そのディレクトリは、MEDIA_ROOTorのどちらとも同じではなく、次のSTATIC_ROOTように追加しSTATICFILES_DIRSます。

STATICFILES_DIRS = (
    os.path.join(PROJECT_PATH, 'assets'),
)

好きなように呼び出すことができます。私は通常「資産」を使用します。混乱を避けるために、「static」、「media」、「site_media」などの名前を付けないでください。

于 2012-08-15T14:35:08.623 に答える