zoukankan      html  css  js  c++  java
  • Django部署时STATIC/MEDIA配置

    Django部署时STATIC/MEDIA配置

    一、DEBUG=True模式

    开发环境,即 DEBUG=True

    settings.py中配置

    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "static"),
    ]
    
    MEDIA_URL = "/media/"
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")
    
    • 如果不需要在web中通过url查看静态文件,就不需要在url层配置静态url
    • runserver 会根据setting配置自动对静态文件进行处理,只在开发环境下生效,在生产环境下不会生效

    二、DEBUG=False模式

    生产环境,即 DEBUG=False

    • 此时,不会在使用django内置的web服务器,需要手动指定,一般python使用uWSGI服务器

    部署需要以下修改:

    • 需要在settings.py中配置STATIC_ROOT,用于存放collectstatic收集到的所有静态文件

      STATIC_ROOT = os.path.join(BASE_DIR, "all_static")
      
      # 注意:STATIC_ROOT 不能和 STATICFILES_DIRS重复
      
    • collectstatic收集静态文件

      # static目录静态文件和django自带的后台admin静态文件打包一起放,并保存在 STATIC_ROOT路径下
      python3 manage.py collectstatic
      
    • urls.py中添加url,包括staticmedia两部分

      from django.views.static import serve
      
      url(r'^static/(?P<path>.*)$', serve, {"document_root": settings.STATIC_ROOT}),
      url(r'^media/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT}),
      

    生产环境配置总结

    # urls.py
    from django.conf.urls import url
    from django.views.static import serve
    from django.conf import settings
    
    urlpatterns = [
        ...,
        url(r'^static/(?P<path>.*)$', serve, {"document_root": settings.STATIC_ROOT}),
        url(r'^media/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT}),
    ]
    
    # settings.py
    DEBUG = False
    
    # static配置,服务器开发的静态文件
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "static")
    ]
    STATIC_ROOT = os.path.join(BASE_DIR, "all_static")
    
    MEDIA_URL = "/media/"
    # media配置,用户上传的文件都默认放在这个文件夹下
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")
    
    博客内容仅供参考,部分参考他人优秀博文,仅供学习使用
  • 相关阅读:
    移动端 css 禁止长按屏幕选中
    找到并替换 字符串中最后一个(不一定是末尾最后一个) 指定字符
    event.preventDefault() 解决按钮多次点击 导致页面变大
    history.go(-1)在不同浏览器中的解析
    clean-css 安装 使用
    Objective-C通过联合存储为类增加属性及原理解析
    IOS-CGAffineTransformMake 矩阵变换 的运算原理
    iOS--inputView和inputAccessoryView
    Objective-C中的@Property详解
    Objective-C--Runtime机制
  • 原文地址:https://www.cnblogs.com/linagcheng/p/15655136.html
Copyright © 2011-2022 走看看