Django里的STATIC_URL的作用 财富值50

2017-08-20 17:13发布

初学django,官方文档把我弄晕了,链接点了半天又回到了原点,来sf请教一下。
project名为newpro,app名为newapp,目录结构是这样的(略去了一些与问题无关的文件)

BASE_DIR     manage.py     static_root/     newpro/         settings.py         urls.py     newapp/         urls.py         views.py         static/             newapp/                 pic.png         mystatic/             newapp/                 pic.png         templates/             newapp/                 pic.html

下面是settings.py

# snap INSTALLED_APPS = [     "django.contrib.admin",     "django.contrib.auth",     "django.contrib.contenttypes",     "django.contrib.sessions",     "django.contrib.messages",     "django.contrib.staticfiles",     "newapp", ] # snap STATIC_URL = "/mystatic/" STATIC_ROOT = "static_root"

在就是pic.html(忽略其它)

{% load staticfiles %} <img src="{% static "newapp/pic.png" %}">

我发现模板html里用的是static/newapp/pic.png而非mystatic/newapp/pic.png,但是我在浏览器里查看源码,图片url是mystatic/newapp/pic.png.


提问

1.STATIC_URL的功能是否只是在我使用template tag方式修改模板时,在前面加上前缀(例子中的"/mystatic/" + "newapp/pic.png"),而实际使用那个staticfile还是按照默认的在各个app下的static目录下查找
2.如果把STATIC_URL改成"mystatic/",发现无法显示图片,这好像就说明不是简单的加上前缀,为什么这样无法显示图片呢?模糊地认为是相对路径和绝对路径的问题
3.不用STATICFILES_DIRS是否可以做到搜索staticfiles时是在每个app下面的指定目录,如mystatic

友情提示: 问题已经关闭,关闭后问题禁止继续编辑,回答。