我在开发环境里访问静态文件总显示404
奇怪的是,我在实际环境(一个云服务器)是可以正常访问这些静态文件的,
而且,我在本地访问模板可以正常返回,但是访问js/css/img等就不行
下面是我的一些配置信息
<!-- template 的设置 -->
<head>
<meta charset="UTF-8">
<title>...</title>
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'css/M_index.css' %}" />
</head>
<body>
...
<script src="{% static 'js/firstload.js' %}"></script>
<script src="{% static 'js/jquery-1.10.1.min.js' %}"></script>
<script src="{% static 'js/M_index.js' %}"></script>
</body>
# settings.py
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
if socket.gethostname() == 'chang':
STATIC_ROOT = "../static/"
STATIC_URL = '/static/'
STATICFILES_DIR = {
os.path.join(BASE_DIR, 'static'),
}
(注: 我已经在INSTALLED_APPS添加了'django.contrib.staticfiles', 而且DEBUG已经设为true)
# urls.py
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
# 当我用"http://127.0.0.1:8000/admin/"访问的时候,出现了以下报错信息
[21/Jan/2018 12:32:50] "GET /admin/ HTTP/1.1" 200 1243
[21/Jan/2018 12:32:50] "GET /static/css/M_index.css HTTP/1.1" 404 1772
[21/Jan/2018 12:32:50] "GET /static/js/firstload.js HTTP/1.1" 404 1772
[21/Jan/2018 12:32:50] "GET /static/js/jquery-1.10.1.min.js HTTP/1.1" 404 1796
[21/Jan/2018 12:32:50] "GET /static/js/M_index.js HTTP/1.1" 404 1766
#这里是当请求加载css的时候,控制台记录的一些记录(请求, 返回头什么的)
General:
Request URL:http://127.0.0.1:8000/static/css/M_index.css
Request Method:GET
Status Code:404 Not Found
Remote Address:127.0.0.1:8000
Referrer Policy:no-referrer-when-downgrade
Response Headers:
Content-Type:text/html
Date:Sun, 21 Jan 2018 04:32:50 GMT
Server:WSGIServer/0.1 Python/2.7.2
Request Headers:
Accept:text/css,*/*;q=0.1
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9
Cache-Control:no-cache
Connection:keep-alive
Cookie:csrftoken=XMZrfTiyLJ512OnmWOTcZJGkcZPxsM0d
Host:127.0.0.1:8000
Pragma:no-cache
Referer:http://127.0.0.1:8000/admin/
User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Mobile Safari/537.36
# 这里有点奇怪, 我请求的是一个css文件, 但是他返回头里却写着"text/html"
还有一点比较奇怪的是,我static目录是"根目录>static"这样子的",可是还是出现""GET /static/js/M_index.js HTTP/1.1" 404"这样的错误, 很费解
我曾查找资料,比如改为绝对路径,添加/static/匹配url, 然后调用django.contrib.staticfiles.views.serve()这些都尝试过不行,
如果大家有什么解决办法, 请告诉我, 谢谢~
settings.py里的STATICFILES_DIR不应该是STATICFILES_DIRS吗?