2015-08-16 55 views
0

似乎不是我能爲我的生活,讓我的靜態文件的工作......我一直在這裏閱讀文檔:我似乎無法讓我的靜態文件加載使用Django

https://docs.djangoproject.com/en/1.8/ref/settings/#static-root

而且我來,我需要以下設置的結論

STATIC_ROOT 
STATIC_URL 
STATICFILES_DIR 

我相信STATIC_ROOT是,如果我想使用./manage.py collectstatic,並把它們都部署一個文件夾中,所以不需要

目前我STATIC_URL是

STATIC_URL = '/static/' 

而且我不知道我的STATICFILES_DIRS應設置。我真的嘗試了我能想到的每一種組合。

STATICFILES_DIRS = (
    "E:\PyProjects\elsablog\static" 
) 

我目前有硬編碼,它仍然無法正常工作!

elsablog 
     blog 
      static 
       blog 
     elsablog 
     static*** 

我想將文件放入靜態***文件夾,而不是我的博客應用程序中的靜態文件夾。 (我的引導,JS,CSS,所以我希望能夠在全球範圍內訪問)

這裏是我的index.html

{% extends "base.html" %} 

{% block content %} 
<SCRIPT SRC=/static/js/test.js"% ></SCRIPT> 
<ul> 
{% for topic in topic_list %} 

    <li>{{ topic.topic_text}}</li> 
    <ul> 

    {% for subtopic in subtopic_list %} 
     {% if subtopic.topic.topic_text == topic.topic_text%} 
      <li>{{ subtopic.subtopic_text}}</a></li> 
     {% endif %} 

     <ul> 
     {% for question in question_list %} 
      {% if question.topic.topic_text == topic.topic_text and question.subtopic.subtopic_text == subtopic.subtopic_text%} 
       <li><a href="/blog/{{ question.id }}/">{{ question.question_text }}</a></li> 
      {% endif %} 
     {% endfor %} 
     </ul> 
    {% endfor %} 
    </ul> 

{% endfor %} 
</ul> 

<A HREF="javascript:a_message()">Click for eea message..</A> 

{% endblock content %} 

和我base.html文件

<!DOCTYPE html> 

{% load staticfiles %} 

<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Esla's Blog</title> 
    <link rel="stylesheet" href="{% static "css/prism.css" %}"> 
    <script src="{% static "js/prism.js" %}"></script> 
    <SCRIPT SRC=/static/js/test.js"% ></SCRIPT> 

</head> 
<body> 
    {% block content %} 
    {% endblock %} 


<A HREF="javascript:a_message()">Click for a message..</A> 
</body> 
</html> 

我d真的很感謝一些幫助,謝謝你們〜!

回答

2

從Django文檔重新:STATICFILES_DIRS:

此設置定義staticfiles應用會如果FileSystemFinder取景器被啓用 橫穿其他位置,例如如果您使用 collectstatic或findstatic管理命令或使用靜態 文件服務視圖。

默認會發現存儲在STATICFILES_DIRS文件 (使用django.contrib.staticfiles.finders.FileSystemFinder),並在每個應用程序的 靜態子目錄(使用 django.contrib.staticfiles.finders.AppDirectoriesFinder)設置。

不管怎樣,試試這個在您的設置文件,而不是你的當前設置:

PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'), 
) 
+0

那沒有工作! =(奇怪的是...在我的控制檯中,我看到這個 '[16/Aug/2015 11:51:35]「GET /static/css/prism.css HTTP/1。1「404 1652 [16/Aug/2015 11:51:35]」GET /static/js/prism.js HTTP/1.1「404 1646 [16/Aug/2015 11:51:35]」GET /static/js/test.js HTTP/1.1「404 1643' –

+0

好吧,讓我們試着解決它吧。DEBUG = True設置會有什麼變化嗎? –

+0

我一直在使用debug設置爲true來運行它 –

0

您應該運行此命令

python manage.py collectstatic 

有關如何提供靜態內容的詳細信息讀取django docs here