2012-08-15 63 views
2

我無法在我的django項目中使用CSS和JS文件。django css和js文件

文件夾結構:

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

settings.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文件

運行蟒蛇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? 
+0

你的靜態文件夾在哪裏?你運行過'collectstatic'嗎? 'STATIC_URL'也應該是'/ static /' – 2012-08-15 12:44:07

+0

,'STATIC_ROOT'應該有一個尾隨的'/':'STATIC_ROOT = os.path.join(PROJECT_PATH,'static /')' – 2012-08-15 12:59:12

回答

9

你永遠不手動放東西STATIC_ROOT。它只是生產中的collectstatic的傾倒場;它甚至不應該存在於開發中。

你所有的靜態資源的需要在您的應用程序static目錄中去,或者如果你需要項目範圍內的資源,你必須是不一樣的兩種MEDIA_ROOTSTATIC_ROOT,並添加創建一個完全不同的目錄它STATICFILES_DIRS

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

你可以稱它爲任何你想要的;我通常使用「資產」。只是不要將其命名爲「靜態」,「媒體」,「site_media」等,以避免混淆。

+0

我把文件移動到mysite/mysite/assets,按照您所描述的更改了static_files_dirs,但我得到「」您的STATICFILES_DIRS設置不是元組或列表; 「 django.core.exceptions.ImproperlyConfigured:您的STATICFILES_DIRS設置不是元組或列表;也許您忘記了尾隨逗號?」 – 2012-08-15 15:10:17

+0

如果您複製並粘貼了我所擁有的內容,您將不會收到該錯誤。你改變了什麼? – 2012-08-15 15:13:48

+0

我移動資產文件夾,以便它匹配PROJECT_PATH的路徑,就是這樣。 – 2012-08-15 15:15:16