linux - django静态文件加载错误

查看:450
本文介绍了linux - django静态文件加载错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

报错信息如下:

"GET /blog/ HTTP/1.1" 200 3367
"GET /static/blog/css/style.css HTTP/1.1" 404 1667
"GET /static/blog/css/pygments/github.css HTTP/1.1" 404 1697


mysite/settings.py里面设置如下:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'blog/static')

# STATICFILES_DIRS = (
#     os.path.join(BASE_DIR, 'blog/static'),
# )


blog/templates/blog/base.html里面设置如下:

{% load staticfiles %}
<link rel="stylesheet" href="{% static "blog/css/style.css" %}" />
<link rel="stylesheet" href="{% static "blog/css/pygments/github.css" %}" />


这是目录树

├── blog
│   ├── static
│   │   └── blog
│   │       └── css
│   │           ├── pygments
│   │           │   └── gighub.css
│   │           └── sytle.css
│   ├── templates
│   │   ├── base.html
│   │   └── blog
│   │       ├── comment.html
│   │       ├── detail.html
│   │       ├── index.html
│   │       └── pagination.html
├── manage.py
└── mysite
    ├── settings.py
    ├── settings.pyc


问题描述:

看了官方文档和Stackoverflow以及SegementFault上的很多解决方案,按理说我的INSRALLED_APPS里面有staticfiles这个app,我的static文件又是直接放在blog这个app下面,django应该能够自动识别出来,而且我又分别单独指定了STATIC_ROOTSTATICFILES_DIRS,但是不管怎么样sytle.css和github.css都报上面的那个404错误,请问有什么好的解决方案?


参考资料:
Google

官方文档

解决方案

1、官方文档有这么一句, 你看看你的Debug是不是True

During development, if you use django.contrib.staticfiles, this will be done automatically by runserver when DEBUG is set to True (see django.contrib.staticfiles.views.serve()).

2、static_root是给python manage.py collectstatic用的,这个目录是给app以外的共同Static目录使用的,不要与app自己目录下的static重名。我觉的你可以把这个配置去掉,或者指向另一个目录,比如project/static
3、如果你指定了static_root,可以运行python manage.py collectstatic,然后看一看,在static_root下是否正确归集了你的app下的静态文件,针对性的查一查
4、协助定位静态文件的还有这个命令可以协助你排查问题

python manage.py findstatic /blog/css/style.css --verbosity 2

这篇关于linux - django静态文件加载错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆