• Django1.7.2配置静态文件


    java农一枚,

    最近在学Django这种搭建起来比较容易的web框架,用起来确实比java web搭建简单多了

    虽然java web发展历史悠久,各种解决方案都比较齐全,但对于现在的网络,更多的是快速搭建中小型网站,这样,javaweb就显得太过笨重

    回归正题,在Django1.7.2配置静态文件

    Django是python web开发的一个很出名的框架,国内python web框架资料比较多,比较全面的也就它了,而且就连python的作者也推荐

    静态文件,就是web中的图片,js文件,css文件等

    一般这些文件都放指定的文件目录,而这些静态文件一般是不会有访问限制的

    网上配置Django的静态文件一搜一大堆,但大多都是1.4版本的,比较旧,而且经过我的测试,很多都不起作用,

    当中可能是版本问题,也可能是我配置的遗漏

    所以,一般遇到这种情况,只能看官方的

    官网配置静态文件链接:https://docs.djangoproject.com/en/dev/howto/static-files/

    好,看了一下官网的配置,十分简单

    1、在settings.py的INSTALLED_APPS配置django.contrib.staticfiles,像这样

    2、在settings.py文件配置

    STATIC_URL = '/static/'

     

    3、在访问的页面配置

    {% load staticfiles %}

    <script type="text/javascript" src="{% static "js/jQuery-1.8.1.js" %}"></script>

     

    4、在app下面建立static文件夹,将静态文件放里面,像这样

     

     

    这样,就能访问静态文件了

     

    根据上面的配置,我产生了好几个问题,经过自己的测试,都一一明了!

    1、这样的配置,只能适用对用app的static文件夹,如果我有多个app,怎么办?因为一般来说,静态文件都是放在一个公共文件夹里面进行访问,

    如果比较大型的网站,也有对应的web服务器来分担,这个就令到别论了

    那我们怎么配置一个公共的静态文件夹呢?

    只要在settings.py文件加上,STATICFILES_DIRS,像这样

    STATICFILES_DIRS是一个元组,里面填写的是路径,路径最好用绝对路径

     

    2、settings.py的STATIC_URL = '/static/'能否不用static,而用其他?

    可以的,STATIC_URL = '/ssss/'

    我这里将static改成ssss

    那么访问我的页面也是能引入静态文件(这里我的静态文件是jQUery1.8.1)

     

    上图可以看出,其实访问静态文件的url是/ssss/js/jQuery-1.8.1.js

    也就是说STATIC_URL = '/ssss/'就是把

    页面的

    <script type="text/javascript" src="{% static "js/jQuery-1.8.1.js" %}"></script>

    的static替换成'/ssss/'

    其实,我们直接访问http://localhost:8000/ssss/js/jQuery-1.8.1.js也能访问到这个jQuery文件

     

     

     

    那么,页面的

    {% load staticfiles %}

    <script type="text/javascript" src="{% static "js/jQuery-1.8.1.js" %}"></script>

    这两句,{% load staticfiles %}能否省略?

    答案是不能,如果省略,访问会报错,报错信息如下

    可以看出来,缺少{% load staticfiles %}是不能解析页面staitc这个关键字,

    当然static这个关键字也是不能用其他字符替换,否则也会报错,这里我就不贴具体报错信息了

     

    3、STATICFILES_DIRS配置多个路径的时候,而这些路径都有相同一个js或者css等静态文件,或加载哪一个?

    经我测试,大概静态文件加载的逻辑是这样,

    先根据元组的顺序遍历所有路由,如果静态文件在其中一个路径下找到,而后面的路径相同的静态文件是不会再次加载的,

     

    4、settings.py中INSTALLED_APPS的django.contrib.staticfiles必须配置

    属性STATIC_URL,如果添加了django.contrib.staticfiles,而缺少STATIC_URL,就会报如下错:

     

    看报错信息就知道,必须配置STATIC_URL

     

    到此,配置Django静态文件就到这

     

    本博完~~~

     

     

  • 相关阅读:
    练习一
    Oracle删除一个库里面的所有表
    bat脚本中,@echo on与@echo off的使用
    bat命令之执行脚本后不退出窗口
    福清游玩
    MyEclipse快捷键
    过滤器与拦截器
    Anaconda-Jupyter的简单使用
    pycharm简单配置
    4、 vim&shell
  • 原文地址:https://www.cnblogs.com/ForeVerWater/p/4231860.html
Copyright © 2020-2023  润新知