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使用模板后无法找到静态资源文件的更多相关文章

  1. Django 1.10 找不到静态资源解决方法

    测试版本:Django 1.10 问题:Django项目找不到静态资源 解决方法: 1.首先你需要在自己的app下面创建2个目录 static 和  templates 树形结构如下(DjangoPr ...

  2. 当Django设置DEBUG为False时,发现admin和html的静态资源文件加载失败的解决办法

    当Django设置DEBUG为False时,发现admin和html的静态资源文件加载失败,折腾一段时间终于找到解决办法: 1.先在setting文件增加BASE_DIR(项目的路径) BASE_DI ...

  3. Django的urls.py加载静态资源图片,TypeError: view must be a callable or a list/tuple in the case of include().

    Django的urls.py加载静态资源图片,TypeError: view must be a callable or a list/tuple in the case of include(). ...

  4. SpringMVC+FreeMarker实现静态资源文件自动添加版本号(md5)

    近日切换java开发,开始学习springframework.在实现静态资源文件自动计算版本号的实例时,因为不熟悉框架,走了不少弯路,好在最终解决了问题.这里写篇文章记录一下实现,也希望对大家有些用处 ...

  5. springboot读取静态资源文件的方式

    springboot的请求路径一般会经过Controller处理,但是静态资源文件在请求之后是直接返回的.这涉及到俩个配置项. spring.mvc.static-path-pattern=/** s ...

  6. 【Azure 应用服务】App Service For Windows 环境中部署Python站点后,如何继续访问静态资源文件呢(Serving Static Files)?

    问题描述 当创建一个App Service 后,运行时环境和版本选择Windows 和 Python 3.6. 登录Kudu 站点查看,默认的文件有 web.config, hostingstart- ...

  7. 关于IDEA每次修改HTML,Css等静态资源文件都需要重启的设置修改

    ~ ~ ~ ~ ~ 关于IDEA每次修改HTML,Css等静态资源文件都需要重启的设置修改 最近开始使用IDEA进行项目开发,但是对于每次修改HTML文件中css和js文件之后都必须重启服务这件事表示 ...

  8. SpringBoot读取静态资源文件

    ClassPathResource resource = new ClassPathResource(publicKeyCer); File file = null; try { file = res ...

  9. springmvc基础篇—处理图片静态资源文件

    当我们在web.xml中对DispatcherServlet的过滤设置为/ 的时候,表示对所有的路径进行拦截过滤,那么不可避免的就会产生一个问题,那就是像图片这种静态资源文件我明明引用路径有,但就是加 ...

随机推荐

  1. Spring AOP小记

    一.概述 在通常的开发过程中,我们调用的顺序通常是controller->service-dao,其中,service中包含着太多的业务逻辑,并且还要不断调用dao来实现自身的业务逻辑,经常会导 ...

  2. TCP连接之未连接队列的理解[转]

    tcp服务器在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认 ...

  3. PYTHON3 中的虚假四舍五入:round()

    PYTHON3 中的虚假四舍五入:round() 创建时间: 2017/12/5 17:08 作者: CN_Simo 标签: python基础, round, 四舍五入 一.这不是一个BUG! 在使用 ...

  4. Jsonp 原理简述

    浏览器因为安全问题而有一个同源策略,不允许跨域请求数据.但是 js 脚本资源和图片资源还是被允许跨域请求的.在 web 开发中,遇到要跨域请求 json 数据时,可以用 jsonp 的方式来绕过浏览器 ...

  5. Laravel 5.4.36 session 没有保存成功问题

    session使用注意点 工作中使用的是session默认的文件缓存  在使用过发现  session()->put("key","values")  发 ...

  6. HBase 数据库检索性能优化策略--转

    https://www.ibm.com/developerworks/cn/java/j-lo-HBase/index.html HBase 数据表介绍 HBase 数据库是一个基于分布式的.面向列的 ...

  7. Java多线程基础(二)

    信号量Semaphore,类似于锁的功能,用于多线程中对一组资源的控制. acquire方法用于尝试获取一个资源,未获取前将一直等待.release用于释放一个资源,release的前提是已经获得了一 ...

  8. 【自适应辛普森积分】hdu1724 Ellipse

    Ellipse Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  9. 全球(局)唯一标识符GUID的使用

    1.GUID百科介绍: 1.全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) .GUID是 ...

  10. Django搭建博客网站(二)

    Django搭建自己的博客网站(二) 这里主要讲构建系统数据库Model. Django搭建博客网站(一) model 目前就只提供一个文章model和一个文章分类标签model,在post/mode ...