为什么Django不会加载我的静态CSS文件?

时间:2016-07-31 06:11:00

标签: python html css django

我无法让Django为我的html模板加载我的CSS。我知道有很多这样的帖子,比如herehere,但是我不知道还有什么可以做,因为我已经尝试了其中的几种解决方案无济于事。

使用python manage.py runserver加载我的网站会返回此日志:

[31/Jul/2016 01:58:29] "GET / HTTP/1.1" 200 1703
[31/Jul/2016 01:58:29] "GET /static/css/about.css HTTP/1.1" 404 1766

我不确定日志第二行末尾的404是否指向404错误。

我尝试将静态文件添加到urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', TemplateView.as_view(template_name='about.html'))
]

urlpatterns += staticfiles_urlpatterns()

我尝试修改settings.py

STATIC_ROOT = ''

STATIC_URL = '/static/'

STATICFILES_DIR = os.path.dirname(os.path.abspath(__file__)) + "/static/"

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder'
)

我当然在实际模板中使用了正确的加载方法:

{% load staticfiles %}
...
<link rel="stylesheet" href="{% static 'css/about.css' %}">

这是我的文件结构:

Personal_Website
|Personal_Website
||settings.py
||urls.py
||etc...
|static
||css
|||about.css
坦率地说,我不知道还能在这做什么。我觉得我已经尝试了所有设置,但我仍然得到相同的日志。

1 个答案:

答案 0 :(得分:2)

您应该在项目目录中提供静态文件...

STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"),]

os.path.dirname(os.path.abspath(__file__))这是指向Personal_Website文件夹,其中所有文件的设置都在那里......