Django在开发中没有看到一些静态文件

时间:2017-10-11 04:58:51

标签: python django

我遇到django在开发过程中没有提供某些静态资产的问题。这是一个非常奇怪的问题。

这就是我的静态目录的相关部分:

site_media
└── static
    ├── css
    │   ├── public.css
    │   ├── site-ada8eab0af.css

现在这是我的staticfiles目录,当我运行manage.py collectstatic时,从我的静态目录中正确导入了一些东西。

我的模板中有两行:

<link href="{% static 'css/site-ada8eab0af.css' %}" rel='stylesheet' />
<link href="{% static 'css/public.css' %}" rel="stylesheet" />

这些在渲染输出中产生这两行:

<link href="/site_media/static/css/site-ada8eab0af.css" rel='stylesheet' />
<link href="/site_media/static/css/public.css" rel="stylesheet" />

当我转到第一个链接时,它工作正常。当我转到public.css链接时,我收到一条404错误,上面写着'css/public.css' could not be found。我使用的完整链接是http://localhost:8000/site_media/static/css/public.css

什么可能使它能够提供其中一个文件,而不是另一个?

1 个答案:

答案 0 :(得分:0)

尝试将以下内容添加到您的设置

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)

Django不提供静态文件,除非你也告诉它。 (https://docs.djangoproject.com/en/dev/howto/static-files/#serving-static-files-in-development

也许两个链接实际上都返回404并且顶部链接只是缓存?