2016-06-07 41 views
1

看來STATICFILES_FINDERS中給出的默認設置是用於在應用程序內查找靜態文件夾。但我試圖讓Django在頂級 static(與manage.py的級別相同)中搜索,但似乎沒有這樣做,儘管在settings.py中定義了static_root目錄並執行了collectstatic。它在查找jquery文件時會得到一個404錯誤。Django:我如何使用STATICFILES_FINDERS

如何更改此設置,以便Django在我的頂級靜態文件夾中查找內容?

這裏是jQuery的404錯誤,當我跑我的網站:

Django version 1.9.6, using settings 'tictactoe.settings' 
Starting development server at http://127.0.0.1:8000/ 
Quit the server with CTRL-BREAK. 
[06/Jun/2016 23:04:21] "GET /board/ HTTP/1.1" 200 361 
[06/Jun/2016 23:04:21] "GET /static/jquery-2.2.4.js HTTP/1.1" 404 1658 
[06/Jun/2016 23:04:21] "GET /static/css/boardcss.css HTTP/1.1" 304 0 

我base.html文件文件:

{% load staticfiles %} 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<script type="text/javascript" src="{% static 'jquery-2.2.4.js' %}"> 
</script> 
<link rel="stylesheet" href="{% static 'css/boardcss.css' %}"> 
</head> 
<body class="body" style="background-color:#545454"> 
    <div class='container-fluid'> 
       {% block content %} 
       {% endblock %} 
    </div> 
</body> 

</html> 

從我的settings.py文件:

STATICFILES_FINDERS = [ 
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 

] 

STATIC_URL = '/static/' 

STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, "board", "static"), 
] 

STATIC_ROOT = os.path.join(BASE_DIR, "static") 

我的目錄樹:

adsf

+0

它只是發展,我調試=真 – TheEyesHaveIt

回答

2

STATIC_ROOT設計用於collectstatic命令read docs。如果你想發現你的文件夾,你需要給它添加到STATICFILES_DIRS

STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, "board", "static"), 
    os.path.join(BASE_DIR, "static"), 
] 

更新

回答在評論

static文件夾重命名爲staticfiles或做STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")你的問題。

我寧願第一個。但是,你需要在你的STATICFILES_DIRS添加os.path.join(BASE_DIR, "staticfiles"),而不是os.path.join(BASE_DIR, "static")

喜歡這個

STATICFILES_DIRS = [[ 
    os.path.join(BASE_DIR, "board", "static"), 
    os.path.join(BASE_DIR, "staticfiles"), 
] 
+0

這給了我一個錯誤:STATICFILES_DIRS設置不應包含STATIC_ROOT設置 – TheEyesHaveIt

+1

@TheEyesHaveIt閱讀更新 –

+0

好吧,工作!謝謝! – TheEyesHaveIt