(资料图片)
静态文件包括了js、css、图片、音频、视频,显然这种资源不太适合每个都写一个视图函数来匹配。故需要有一个位置存放静态文件,但请求是静态文件的请求的时候,直接映射到静态文件目录下获取资源。
在springboot中通过配置静态资源映射就可以实现,在nginx中也是配置位置就可以实现网站页面的对外服务,在django中的访问路径配置是在settings.py中进行的,默认STATIC_URL='/static/' ,意为若是访问的url路径中是/static/XXX直接放行到静态资源目录里去,至于静态资源目录位置的配置,则是STATICFILES_DIRS来说明,该配置项作为元组,可以设置多个可存放静态资源的路径
在模板中,加载静态资源有两个方式,第一种方法是通过指定src去利用访问路径再映射到资源目录去读取资源文件,第二种方法途径是通过static标签去直接得到资源路径读取资源文件,我这里更喜欢第二种方式,这是动态的,哪怕settings.py的STATIC_URL改变了也不会有问题,但是第二种方式需要去提前加载{%load static%},忘记写就会报错。
本质上是通过渲染模板过程中读取static标签后对内容解析,join在STATIC_URL后面,形成一个新的src。这一过程并不麻烦,也比较直观的体现出了配置背后的抽取思想