django导入多个html文件,Django导入静态文件

引言

这个问题出在以Djiango做后台的前端界面上。按以往的习惯,css,js,image等静态文件直接在前端html中写好链接,直接丢上去就可以,但当我把含外部css的html在丢到Django后发现,css并没有载入,自然,其他静态文件也是如此。

最初百度查找解决方案,但很多使用的版本与我的不同,解决方案也有偏差,其他可用的方案也并没有讲清楚(其实就是我没能理解),于是自己去看了文档写下了自己的理解

相关软件及版本:

Django 2.1.3

python 3.7.0

Django文档管理静态文件:

原因分析

出现这个问题其实是因为程序员太想当然了(但一般肯定会觉得直接丢上去没问题的啊混蛋)。在以往的php做后端的例子中,我们只要知道url就可以访问网站根目录下的任何文件。以外部css为例,在浏览器获得html文件后会对资源进行链接,链接css文件时,将向服务器请求css的url对应的css文件,该css文件确实存在,于是服务器将之返回,浏览器成功链接到外部css文件。整个过程十分简单。

那么为什么Django链接不到?原因出在一开始,css对应的url不存在。Django并不像php那样可以访问网站根目录下的文件,它只会对路由所包含的路径进行对应的响应。简单来说,你随便往Django根目录丢给文件,在不编写路由的情况下,是不可能通过url获得的。同样,如果尝试访问没有写进路由的css文件,那么返回只可能是404。既然资源404了,那么浏览器请求不到,导入失败就是理所当然的。

解决方法

你可能感兴趣的:(django导入多个html文件,Django导入静态文件)