关于static和Media设置静态目录的问题

之前的版本Django 1.9 里面,设置了static,目录(setting.py):

STATIC_URL = '/static/'

这局代码的意思是,项目里的静态文件的访问路径,项目里的所有静态文件都可以从这个路径得到。那么项目里的静态文件放到何处呢?

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

这个就是定义的静态文件路径。这个BASE_DIR就是项目的默认路径,在setting.py的上面已经定义好了。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

这个配置就是默认的,也就是表示项目的根目录。
那么STATIC_ROOT = os.path.join(BASE_DIR,'static'),这个配置就是说,在BASE_DIR下建立一个static文件夹。作为STATIC_ROOT。
STATIC_ROOT 里定义了那个路径,就说明静态文件放在哪里。如果有多个路径怎么办?把STATIC_ROOT用数组表示即可:

STATIC_ROOT =[ os.path.join(BASE_DIR,'static'),os.path.join(BASE_DIR),'第二个文件夹名称'),........]

这样就定义好了static文件夹。开发的时候可以直接在/static/下面放css,js等文件。

如果您没有定义Media文件夹,那么upload文件会默认找static保存。如果定义了Media文件夹,那么upload文件、图片会存在media路径里。Media的设置跟static设置一样的。

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')

在模板中如何调用static文件。

在1.9的版本里,这么设置完成后,在模板里直接设置/static/css/a.css 就能直接调用。可是,升级到2.0之后不行啦。
研究之后从万网文档里得知,需要这么搞:

{% load static %}
{{ STATIC_URL }}css/font-awesome.css

{% load static %} 需要在下面引用的上面,一般写在head里就可以。

你可能感兴趣的:(关于static和Media设置静态目录的问题)