zoukankan      html  css  js  c++  java
  • 211. django中的static 静态文件配置

    0.问题产生原因

    我们项目在后台生成了pdf报告,和png图片, 组长想给pdf报价一个预览功能. 一开始想了很多办法没成功, 搜索时看到有人使用django 静态目录.
    

    1. 首先了解静态文件

    比如图片, css, js, pdf等文件(音频文件不包括他属于django的另一个类型media类型), 当前端请求时将这些文件展示给用户看.
    

    2. 主要的几个配置

    # 静态文件路径, 也就是你要访问一个静态文件 a.png, 那么你需要加上static/a.png
    STATIC_URL = '/static/'
    # 静态文件目录, 只有当执行python manage.py collectstatic 时, django会将所有App下面的静态文件搜集到STATIC_ROOT中,
    # 生产环境时你只需要将静态文件配置执行这里就可以了(也就是说STATIC_ROOT可以不叫做static, 他可以是任意一个名字, 只不过默认大家这么写而已)
    STATIC_ROOT = BASE_DIR.joinpath("static")
    # 指向一个我们需要的路径, django会先遍历STATICFILES_DIRS, 找不到才会去所有app下面去遍历, 不过一般我们会将STATICFILES_DIRS 和STATIC_ROOT 配置一样
    STATICFILES_DIRS = []
    

    3. 使用

    测试环境:
    STATIC_URL = '/static/'  # 你只需要配置他就可以是你的项目访问到你app下面的static目录中的静态文件(STATIC_URL这是请求静态文件的前缀, 可以随便改, 默认叫做static)
    
    生产环境:
    STATIC_URL = '/static/'
    STATIC_ROOT = BASE_DIR.joinpath("static")  # 需要额外执行一个python manage.py collectstatic将所有app下面的static目录中的静态文件, 全部按照对应目录拷贝到STATIC_ROOT 对应的路径, 这个过程是自动的
    STATICFILES_DIRS = ()  # 如果你还有不是放在app, 以及STATIC_ROOT路径下的可以通过它指定
    
    比如: STATIC_ROOT 下面有一个images/1.jps 你在html中如何配置才能显示呢
    http://xxxxx/static/images/1.jps  即可
    

    4. nginx配置

    上面配置完成之后还是不能使用, 原来还需要配合nginx的路由使用真麻烦
    location /static/ {
        alias /home/NetCTP/InfosecAgile/static/;
        index index.html index.htm;
    }
    

    5. nginx配置2(把django中的static配置全部注释掉)

    直接使用nginx配置不配置django中的静态配置, 我直接给报告换了个目录, 只在nginx上面配置好访问文件的路径就可以了.(但是如果你要是用django模板中引用static_url还是建议使用django的静态目录配置)
    location /libs/report/ {
        alias /home/NetCTP/InfosecAgile/libs/report/;
        index index.html index.htm;
    }
    

    参考:

    1. https://www.yisu.com/zixun/178048.html
    2. https://segmentfault.com/a/1190000000358284
    3. https://www.cnblogs.com/starof/p/4682812.html
  • 相关阅读:
    c# where(泛型类型约束)
    jQuery自定义插件
    jQuery插件定义
    SQL中merge into用法
    .net framework 4.5安装失败
    jQuery操作Form表单元素
    在WebAPI使用Session
    大数据量数据库设计与优化方案(SQL优化)
    修改NUGET包默认存放位置
    C#知识体系(一) 常用的LInq 与lambda表达式
  • 原文地址:https://www.cnblogs.com/liuzhanghao/p/15661147.html
Copyright © 2011-2022 走看看