• 当Django中Debug=False,静态文件处理方式。


      Django设置DEBUG为False时,'django.contrib.staticfiles'会关闭,即Django不会自动搜索静态文件,静态文件不能加载导致的问题有两个:

      1.页面排版不正常,即css文件不能正常加载;
      2.通过url不能访问静态文件,如图片等。

      这里大致先说一下STATIC_ROOT、STATICFILES_DIR的不同之处:

      1.STATICFILES_DIRS是静态文件路径;

      2.STATIC_ROOT用来存储使用python manage.py collectstatic命令收集起来的静态文件。

      可以使用Django来处理静态文件。

      1.在settings.py中指定STATIC_ROOT, STATICFILES_DIRS等变量,例如:

      

    # 默认
    STATIC_URL = '/static/'
    
    # 项目根目录下的static文件夹
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    
    # 不能和STATIC_ROOT路径相同
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'zhitu/static'),
    ]
    
    MEDIA_URL = '/media/'
    # 项目根目录下的media文件夹
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    

      2.在settings.py中配置项目的模版文件路径:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            # 指定模版文件路径
            'DIRS': [os.path.join(BASE_DIR, 'apps', 'templates'),],
            # 设置为False, 不再去每个app下找templates文件,会在DIRS指定的路径寻找
            'APP_DIRS': False,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    

      3.在urls.py中添加

    from django.views import static
    from django.conf import settings
    
    urlpatterns = [
        url(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT }, name='static'),
    ]
    

      

      

  • 相关阅读:
    Redis Cluter
    数据库设计范式
    kvm虚拟化
    架构前端
    集群架构
    初识shell编程
    网络知识
    Linux三剑客
    Linux磁盘管理
    高性能异步爬虫
  • 原文地址:https://www.cnblogs.com/n1celll/p/10681800.html
Copyright © 2020-2023  润新知