Django使用模板后无法找到静态资源文件问题解决
环境配置
- 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在根目录下用来收集所有静态资源文件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
django小技巧之html模板中调用对象属性或对象的方法
环境:依赖最初test2数据库 python3版本 多python版本环境 进入,python3虚拟环境,新建项目test4: ]# cd py3/django-test1/ ]# django-admin startproject test4 创建应用bookshop: ]# cd test4 ]# python manage.py startapp bookshop 修改settings.py主配置文件: ]# vim test4/settings.py ... #数据
-
利用django-suit模板添加自定义的菜单、页面及设置访问权限
前言 本文主要给大家介绍了利用django-suit模板在管理后台添加自定义的菜单和自定义的页面.设置访问权限的相关内容,分享出来供大家参考学习,下面话不多说了,来随着小编一起看看详细的介绍吧 方法如下: 1.先在settings.py里面的SUIT_CONFIG中添加配置,我们平时添加的配置都是app类型的,我们需要自定义页面的话,就不能用app了,需要用url,这里面我们使用如下: # django-suit config SUIT_CONFIG = { 'ADMIN_NAME': 'X·
-
django模板加载静态文件的方法步骤
加载静态文件 在一个网页中,不仅仅只有一个 html 骨架,还需要 css 样式文件, js 执行文件以及一些图片等.因此在 DTL 中加载静态文件是一个必须要解决的问题.在 DTL 中,使用 static 标签来加载静态文件.要使用 static 标签,首先需要 {% load static %} .加载静态文件的步骤如下: 首先确保 django.contrib.staticfiles 已经添加到 settings.INSTALLED_APPS 中. 确保在 settings.py 中设置了
-
django框架模板中定义变量(set variable in django template)的方法分析
本文实例讲述了django框架模板中定义变量的方法.分享给大家供大家参考,具体如下: 总有一些情况,你会想在django template中设置临时变量,但是django 对在模板中对临时变量的赋值没有很好的开箱即用的tag 或者filter.但是还是能通过一些其他方法实现的. 1. 利用 django 自带的 with 标签实现 2. 利用自定义 tag 实现,应该灵活很多. 利用 django 自带的 with 标签实现对变量赋值 好像在django 1.3 之后才支持这种做法 从cont
-
介绍Python的Django框架中的静态资源管理器django-pipeline
django-pipeline 是一个 Django 下非常方便的静态资源管理 app,尤其是 1.2 版本之后,利用 django-staticfiles 的collectstatic 命令,在开发.部署环境下切换非常方便. 写 codinn.com 代码的时候,静态资源管理方面遇到了一些烦人的事情: 为了加速页面加载速度,浏览器会缓存静态文件,静态资源更新后,浏览器很可能从缓存提取过期的静态文件 自己写的 CSS/JS 要手工 minify,非常麻烦 零碎的 CSS/JS 小文件太多 CSS
-
Django静态资源URL STATIC_ROOT的配置方法
缘由 新手学习 Django 当配置好 HTML 页面后,就需要使用一些静态资源,如图片,JS 文件,CSS 样式等,但是 Django 里面使用这些资源并不是直接引用一下就好,还要配置路径即 STATIC_URL 如果这个配置不好的话,请求这些静态资源将返回 HTTP 404 . 经验传授 1. 输出 settings.py 文件里面的 STATIC_URL 到HTML页面,看一下物理路径指向了哪些,通常是不是跑出根目录的.这里给个DEMO: 复制代码 代码如下: def home(reque
-
Django使用模板后无法找到静态资源文件问题解决
环境配置 Django版本1.11 python版本3.6.2 前言 在编写Django网站的时候,在涉及模板方面,一些简单的例子都没有问题,但这些例子都有一个共同点,那就是所使用的模板没有需要的静态资源文件.当涉及到模板中需要静态资源文件,如css,js等文件的时候,如果我们不做什么处理,直接按前端写好的给我们放入到templates文件中时,即如下形式: |templates |----js |--------xxxx.js |----css |--------xxxx.css |----x
-
springboot项目打成jar包后无法获取static下的静态资源文件的问题分析
springboot 后端项目 做某个功能时 需要读取根目录下的.doc文件,具体项目中路径如下: 开始是通过绝对路径读取文档,在本地没有任何问题. 但是 讲项目打成jar包 部署到测试环境发现无论怎样都读取不到,然后在本地运行jar包出现同样的情况. 捕获异常:java.io.FileNotFoundException [org.apache.ibatis.session.defaults.DefaultSqlSession@55b40849] java.io.FileNotFoundExce
-
使用springboot对外部静态资源文件的处理操作
目录 springboot对外部静态资源文件的处理 1.存方面倒还简单,这里贴上一个获取微信临时素材并保存的方法 2.取,由于对springboot不熟悉,所以在这上面踩了坑 主要使用到这2个配置 之后,访问文件一直404 SpringBoot2.x静态资源访问 问题 代码 原理 springboot对外部静态资源文件的处理 springboot对外部资源文件的处理主要分为2部分,存和取,通过查看官方文件和看博客踩了坑之后终于搞定了,特此记录. 1.存方面倒还简单,这里贴上一个获取微信临时素材并
-
Spring Boot 读取静态资源文件的方法
一.需求场景 有时候我们需要在项目中使用一些静态资源文件,比如城市信息文件 countries.xml,在项目启动后读取其中的数据并初始化写进数据库中. 二.实现 静态资源文件 countries.xml 放在 src/main/resources 目录下 使用 Spring 的 ClassPathResource来实现 : Resource resource = new ClassPathResource("countries.xml"); File file = resource.
-
springboot操作静态资源文件的方法
默认静态资源供 SpringBoot有几个默认的静态资源目录,当然也可配置,默认配置的/**映射到/static(或/public ,/resources,/META-INF/resources),自定义配置方式如下: spring.mvc.static-path-pattern=/** # Path pattern used for static resources. 前端如果需要访问默认的静态资源,下面有点要注意,考虑下面的目录结构: └─resources │ application.ym
-
python3+selenium获取页面加载的所有静态资源文件链接操作
软件版本: python 3.7.2 selenium 3.141.0 pycharm 2018.3.5 具体实现流程如下,废话不多说,直接上代码: from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.desired_capabilities import DesiredCapabilities d = Desired
-
Go1.16新特性embed打包静态资源文件实现
目录 背景 embed 嵌入 字符串.字节切片.文件嵌入 嵌入文件 嵌入文件夹 嵌入匹配 FS 文件系统 总结: 背景 相信有一部分人喜爱 GO 的初衷大概是:跨平台静态编译,如果在没用通过 CGO 引用其他库的话,一般编译出来的可执行二进制文件部署起来非常方便,但人们在实际中发现,使用 Go 语言开发的后端 WEB 程序存在 HTML 模版.图片.JS.CSS.JSON 等静态资源,部署时需要把这些静态资源与二进制程序一起上传到服务器部署,在现今遍地花容器的今天,为了简化部署流程,能不能更进一
-
javascript实现动态导入js与css等静态资源文件的方法
本文实例讲述了javascript实现动态导入js与css等静态资源文件的方法.分享给大家供大家参考.具体实现方法如下: /** * 动态导入静态资源文件js/css */ var $import = function(){ return function(rId, res, callback){ if(res && 'string' == typeof res){ if(rId){ if($($('#' + rId), $('head')).length>0){ return; }
-
详解js静态资源文件请求的处理
本文实例为大家分享了js静态资源文件请求的处理,供大家参考,具体内容如下 html文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="index.css" type=
-
Nginx 过滤静态资源文件的访问日志的实现
凌乱的日志 日常使用的 Nginx 大都既做静态资源服务器,也做反向代理服务器,尤其有些时候考虑到跨域问题,会对静态资源和后端接口使用同一个监听端口,如果不做一下过滤处理,会在 access_log 中看到大量的例如 js.css.jpg 等静态资源的请求,比较影响查看后端接口调用的日志 本来没有很在意这个东西,不过在浏览一篇关于 Nginx 优化的文章时,发现了一种用 map 定义一个是否写日志的参数的方法,结合最近使用 map 做动态的跨域配置,索性也是学习及记录一下 map 的另一个使用场
随机推荐
- ueditor编辑器不能上传图片问题的解决方法
- http200、301、304等状态码详解
- VBS教程:VBscript语句-If...Then...Else 语句
- 新手指南:大内存的崭新用途
- IE浏览器增加“复制图像地址”的右键菜单的vbs代码
- Django自定义认证方式用法示例
- asp.net 防止用户通过后退按钮重复提交表单
- javascript图片延迟加载实现方法及思路
- ASP.NET 2.0,C#----图像特效处理
- 分享一个Laravel好用的Cache宏
- 用ASP打开远端MDB文件的方法
- mysql数据库乱码之保存越南文乱码解决方法
- JS+CSS设置img在DIV中只显示Img垂直居中的部分
- javascript判断数组内是否重复的方法
- a10 config backup for aXAPI
- 在Linux下用软件实现RAID功能
- monkeyrunner环境搭建及实例教程(3)
- Java 深拷贝与浅拷贝的分析
- Java使用条件语句和循环结构确定控制流(实例)
- php记录日志的实现代码