Django使用模板后无法找到静态资源文件问题解决


Posted in Python onJuly 19, 2019

环境配置

  • Django版本1.11
  • python版本3.6.2

前言

在编写Django网站的时候,在涉及模板方面,一些简单的例子都没有问题,但这些例子都有一个共同点,那就是所使用的模板没有需要的静态资源文件。当涉及到模板中需要静态资源文件,如css,js等文件的时候,如果我们不做什么处理,直接按前端写好的给我们放入到templates文件中时,即如下形式:

|templates

|----js

|--------xxxx.js

|----css

|--------xxxx.css

|----xxxx.html

当运行网站的时候,我们会发现所有需要加载的都没有加载进来,原因便是在渲染页面的时候,Django的处理器将目录对应到了根目录,所以我们使用的其实是在根目录下的静态资源文件(其实并没有),所以也就会出现404错误。

解决方法

首先settings.py文件中应有如下代码

STATIC_URL = '/static/'

这是用来定义静态目录URL,一般都已经给出

在每个要使用到静态资源的模板中,我们应该将路径改为static下的目录,比如

/static/my_app/example.jpg

或者

{% load static %}
 <img src="{% static "my_app/example.jpg" %}" alt="My image"/>

当然,不使用static也行,可以自己定义存放静态资源文件的目录,如下:

STATICFILES_DIRS = [
 os.path.join(BASE_DIR, "static"),
 '/var/www/static/',
 ]

我们需要注意的是,这里的static文件夹是处于你所引用模板的app下的static文件夹,尽量不要把资源放在根目录下static文件夹,因为根目录下的static文件夹一般是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来,为的是把这些文件放到一起是用apache等部署的时候更方便,如下

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

我们就定义了一个collected_static在根目录下用来收集所有静态资源文件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
让 python 命令行也可以自动补全
Nov 30 Python
Python中的True,False条件判断实例分析
Jan 12 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
python实现一行输入多个值和一行输出多个值的例子
Jul 16 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 Python
浅谈python中频繁的print到底能浪费多长时间
Feb 21 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
pycharm 对代码做静态检查操作
Jun 09 Python
Python制作数据预测集成工具(值得收藏)
Aug 21 Python
PyQt QMainWindow的使用示例
Mar 24 Python
Python编写nmap扫描工具
Jul 21 Python
Python中time标准库的使用教程
Apr 13 Python
Django模板Templates使用方法详解
Jul 19 #Python
python GUI图形化编程wxpython的使用
Jul 19 #Python
Django 外键的使用方法详解
Jul 19 #Python
python原类、类的创建过程与方法详解
Jul 19 #Python
Django 全局的static和templates的使用详解
Jul 19 #Python
python之拟合的实现
Jul 19 #Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 #Python
You might like
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
十天学会php(3)
2006/10/09 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
python 快速排序代码
2009/11/23 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
会计主管岗位职责范文
2013/11/08 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
幼儿学前班评语
2014/12/29 职场文书
淘宝客服专员岗位职责
2015/04/07 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
MySQL事务的隔离级别详情
2022/07/15 MySQL