在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ Django 1.9.7 本地訪問靜態(tài)文件時出錯

Django 1.9.7 本地訪問靜態(tài)文件時出錯

我在開發(fā)環(huán)境里訪問靜態(tài)文件總顯示404
奇怪的是,我在實際環(huán)境(一個云服務(wù)器)是可以正常訪問這些靜態(tài)文件的,
而且,我在本地訪問模板可以正常返回,但是訪問js/css/img等就不行

下面是我的一些配置信息

<!-- template 的設(shè)置 -->
<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'),
}

(注: 我已經(jīng)在INSTALLED_APPS添加了'django.contrib.staticfiles', 而且DEBUG已經(jīng)設(shè)為true)

# urls.py

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
# 當(dāng)我用"http://127.0.0.1:8000/admin/"訪問的時候,出現(xiàn)了以下報錯信息

[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
#這里是當(dāng)請求加載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"這樣子的",可是還是出現(xiàn)""GET /static/js/M_index.js HTTP/1.1" 404"這樣的錯誤, 很費解

我曾查找資料,比如改為絕對路徑,添加/static/匹配url, 然后調(diào)用django.contrib.staticfiles.views.serve()這些都嘗試過不行,

如果大家有什么解決辦法, 請告訴我, 謝謝~

回答
編輯回答
孤巷

settings.py里的STATICFILES_DIR不應(yīng)該是STATICFILES_DIRS嗎?

2017年2月22日 12:40
編輯回答
柚稚

問題已經(jīng)解決, 有兩種解決辦法

1, 建立STATICFILES_DIRS[](注意是列表或者是元組,不是字典!), 把static的地址加入到里面, 同時注意不能包含STATIC_ROOT里面的地址, 否則會報錯(ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting),這樣在實際環(huán)境還是生產(chǎn)環(huán)境都能完美運行.(推薦)

2, 保持原有設(shè)置不變, 但是把static復(fù)制到應(yīng)用中的文件夾里面, 用于調(diào)試. 調(diào)試的時候模板調(diào)用的是應(yīng)用中文件夾的static, 那么修改的也應(yīng)該修改這個, 調(diào)試完畢再把它覆蓋到真正的static提交, (親身試驗過可行, 但是很麻煩, 每次提交都要先覆蓋, 在知道1這個答案之前我一直用這個方法)

希望能對你有幫助

2018年7月10日 21:36