2015-09-03 28 views
1

靜態文件在我將它們移動到另一個目錄後不會加載。
settings.py看起來是這樣的:Static在Django CMS中不加載

DATA_DIR = os.path.dirname(os.path.dirname(__file__)) 
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(DATA_DIR, 'static') 
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'src', 'static'), 
) 
STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder", 
    "django.contrib.staticfiles.finders.AppDirectoriesFinder" 
) 
INSTALLED_APPS = (
    ... 
    'django.contrib.staticfiles', 
    ... 
) 

所有靜態我想在我的virtualenv的根目錄下放置。有文件夾

src(root_dir)-->media  /* uploaded media */ 
      -->static  /* for css, js etc*/ 
      -->project_y /*web-page*/ 
      -->templates /*html templates */ 

奇怪的事情(對我來說)是模板和媒體通常從那些目錄工作。我已經把它們放在這裏:

MEDIA_URL = '/media/' 
TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates' 
) 

任何想法如何重新定位靜態?

回答

2

靜態文件,你必須collectstatic

python manage.py collectstatic 

將從所有STATICFILES_DIRS收集文件,並把它們放到STATIC_ROOT內。只有在此之後,才能訪問靜態文件

+0

我現在有另一條消息。 Python說'沒有這樣的文件或目錄:'/ home/stp/web/project_y/src/src/static''。當然,沒有這樣的目錄,我有'/ home/stp/web/project_y/src/static'。在settings.py中有一些錯誤:( –

+0

@StPavel你在'STATICFILES_DIRS'中指定了'/ src/src/static',將它改爲任何現有的目錄,並且它能正常工作,如果你有問題,你想拷貝到靜態文件夾中的文件的路徑? –

+0

我的靜態文件現在放在'/ src/project_y/static /'中,並且所有工作都正常,但是我希望所有的靜態文件放在'/ src/static /'。如果我設置了STATICFILE_DIRS =(os.path.join(BASE_DIR,'static')'並且執行'collectstatic',那麼會出現'STATICFILES_DIRS設置不應該包含STATIC_ROOT設置'的信息 –