zoukankan      html  css  js  c++  java
  • 当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'),
    ]
    

      

      

  • 相关阅读:
    前端chrome浏览器调试总结
    this指南——绑定了谁?
    轮播图终极版
    一个后台项目的总结
    h5 websocket 断开重新连接
    ios手机键盘拉起之后页面不会回退的问题
    promise 的串行执行
    js中对小数的计算
    对问卷项目的优化
    禁止eslint对指定代码检测
  • 原文地址:https://www.cnblogs.com/n1celll/p/10681800.html
Copyright © 2011-2022 走看看