搞了这么久,还没全部清楚!
首先弄清楚url 路径和磁盘文件真实路径
http://127.0.0/static/img/a.jpg static这个是url 虚拟路径。seting中常用STATIC_URL
获取文件时候 要映射到真实路径。seting中常用 STATIC_ROOT。
STATIC_URL =====》STATIC_ROOT,比如STATIC_ROOT=app1/abc/
则映射后 /static/img/a.jpg ===> app1/abc/img/a.jpg
弄清以上就好了。
但是好有个问题 ,STATIC_URL是static时候,真实资源路径,最好放在各自app路径下,不要放在项目路径下,否则可能找不到(这个问题搞得我抓狂),其他自己命名的虚拟路径随便
proj
static # 真实路径这里不要放。(换个名字也不行)
app
static #放这里
setting.py配置
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
STATIC_URL='/static/' #这个必须有。系统强制的。其他地方在用
STATIC_ROOT = os.path.join(BASE_DIR, 'app_meter/static') #放在应用app_meter下
MY_ROOT = os.path.join(BASE_DIR,'upload_media2')
MEDIA_ROOT = os.path.join(BASE_DIR,'upload_media')
########################################################
url配置
urlpatterns = [
url(r'^static/(?P<path>.*)$', static.serve,{'document_root': settings.STATIC_ROOT}, name='static'),
url(r'^my/(?P<path>.*)$', static.serve,{'document_root': settings.MY_ROOT}, name='my'),
url(r'^media/(?P<path>.*)$', static.serve,{'document_root': settings.MEDIA_ROOT}, name='media')
]