找不到Django静态文件404

时间:2019-03-03 02:16:24

标签: django

我已经搜索了类似的问题,但是没有找到答案。

我简单的webapp结构是:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    static/
        test.txt
    myfirstapp/

我已设置STATIC_URL ='/ static /' 和STATIC_ROOT = os.path.join(BASE_DIR,“静态”)

,当我启动django服务器时,我打印出静态路径 / home / pi / mysite / static,看起来正确

在我的模板中,代码是:

{% load static %}
<li><a href="{% static 'test.txt' %}">Test File</a></li>

如果单击链接,我总是得到404。但是,如果将静态文件夹放在/ home / pi / mysite / mysite /中,则静态目录为/ home / pi / mysite / mysite / static,这是代码可以正常工作,我可以查看txt文件。

我对设置感到困惑,我认为我在根目录中的设置中设置了静态目录,但没有在“ mysite / mysite”中设置。为什么真正的行为是相反的?这里有什么问题?谢谢!

2 个答案:

答案 0 :(得分:2)

您应该在开发期间为他们提供服务。选中此part。 编辑主urls.py(您将在与settings.py的文件夹中找到它)。

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

答案 1 :(得分:0)

  1. 您需要在服务器上运行python manage.py collectstatic。 这会将静态文件放置在STATIC_URL的位置
  2. 您需要在Web服务器中配置静态文件

例如Nginx conf文件:

location /static/ {     
  root   /django_path/static/;    
}