关于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里就可以。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容