繁体   English   中英

试图在开发服务器上提供django静态文件 - 未找到

[英]Trying to serve django static files on development server - not found

我按照这个问题的说明文档 ,我甚至看过这个 ,但到目前为止,我无法使用python manage.py runserver获取我的静态文件。

这些是我的(相关?)设置:

STATIC_ROOT '/home/wayne/programming/somesite/static'
STATICFILES_DIRS ('/home/wayne/programming/somesite/static/styles',
                  '/home/wayne/programming/somesite/static/admin')

在我的urls.py中:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
# The rest of my urls here...
if settings.DEBUG:
    urlpatterns += staticfiles_urlpatterns()

我在base.html中有以下代码

    <link rel="stylesheet" type="text/css" href="{% static "styles/main.css" %}">
    {% block styles %}
    {% for sheet in styles %}
    <link rel="stylesheet" type="text/css" href="{% static sheet %}">
    {% endfor %}

而且我保证我不会产生幻觉:

(.env)wayne:~/programming/somesite/static$ pwd 
/home/wayne/programming/somesite/static 
(.env)wayne:~/programming/somesite/static$ ls 
admin  styles 

但是,当导航到http://localhost:8000/我的网站缺少其样式表时,当我转到http://localhost:8000/static/styles/main.css我得到'styles/main.css' could not be found ,并尝试导航到localhost:8000/static/ ,或localhost:8000/static/styles它告诉我不允许使用目录索引。

我在这里错过了什么?

Django对静态文件的处理仍然有点混乱,特别是在相关设置的命名方面。

简短的回答是移动静态文件; 代替

/home/wayne/programming/somesite/static

把它们放进去

/home/wayne/programming/somesite/yourapp/static

(其中“yourapp”显然是主应用程序的名称)。

更长的答案是,我认为你(可以理解)对各种设置感到困惑。 STATIC_ROOT 指的是你的静态文件应在运行后最终位置manage.py collectstatic 在本地开发时,您不需要这个集合(因为您不应该真正需要collectstatic )。 无论哪种方式, STATIC_ROOT应始终引用空目录。

你的STATICFILES_DIRS设置几乎可以工作,除了你告诉Django它有两个路径应该找到静态文件

/home/wayne/programming/somesite/static/styles
/home/wayne/programming/somesite/static/admin

所以当你做{% static "styles/main.css" %}它会寻找

/home/wayne/programming/somesite/static/styles/styles/main.css
/home/wayne/programming/somesite/static/admin/styles/main.css

并且显然不会找到他们。 可能有用的是

STATICFILES_DIRS = ('/home/wayne/programming/somesite/static',)

但是没有必要这样做,因为您可以依赖django.contrib.staticfiles.finders.AppDirectoriesFinder (在默认的STATICFILES_FINDERS中 )并将静态文件移动到app目录。

希望这能把事情搞清楚一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM