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 相关文章推荐
10个易被忽视但应掌握的Python基本用法
Apr 01 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
Python实现字符串格式化的方法小结
Feb 20 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
Python基于更相减损术实现求解最大公约数的方法
Apr 04 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
python实现换位加密算法的示例
Oct 14 Python
使用python进行拆分大文件的方法
Dec 10 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
Jul 08 Python
python中的split()函数和os.path.split()函数使用详解
Dec 21 Python
jupyter notebook 参数传递给shell命令行实例
Apr 10 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 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
php实现读取手机客户端浏览器的类
2015/01/09 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
python通过post提交数据的方法
2015/05/06 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
Pycharm最新激活码2019(推荐)
2019/12/31 Python
pycharm的python_stubs问题
2020/04/08 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
存储过程的优点有哪些
2012/09/27 面试题
管理站站长岗位职责
2013/11/27 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
教师党员一句话承诺
2014/03/28 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
安全教育观后感
2015/06/17 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
初一军训感言
2015/08/01 职场文书