我遇到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
什么可能使它能够提供其中一个文件,而不是另一个?
答案 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并且顶部链接只是缓存?