繁体   English   中英

css 未加载到 django 的登录和管理页面中

[英]css not loading in my login and admin page in django

我是 django 的新手,我开始通过官方教程学习 django。

我在 virtualenv 旁边使用 django,但登录页面和管理页面有问题,因为

他们不加载 css 并显示没有任何样式的登录页面和管理页面

"""
Django settings for mysite project.

Generated by 'django-admin startproject' using Django 1.8.1.

For more information on this file, see
https://docs.djangoproject.com/en/1.8/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.8/ref/settings/
"""

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'g8%o@ackd!hzekoho4rn7r7-t_m!sk$*nwi-4j556t=!ln3(@+'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)

ROOT_URLCONF = 'mysite.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        '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',
            ],
        },
    },
]

WSGI_APPLICATION = 'mysite.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}


# Internationalization
# https://docs.djangoproject.com/en/1.8/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/

STATIC_URL = '/static/'

首先,创建名为“static”的文件夹,然后您需要将所有 css/js 文件复制到项目内的 static 文件夹中(或创建静态文件夹的任何位置)。 然后在settings.py声明静态文件目录路径

STATIC_URL = '/static/'
STATICFILES_DIRS = ('assets', BASE_DIR +'/static/',)

在您的 html 文件中,添加以下行 -
{% load staticfiles %}
在标题部分的顶部或文件的顶部。
<head>部分,您可以使用以下代码链接 css/js 文件

<link rel="stylesheet" href="{% static 'assets/css/mystyle.css'%}">
</link>
<script src="{% static 'assets/js/jquery.js'%}"></script>

您需要通读有关提供静态文件的文档 在生产环境中,您的网络服务器 (nginx/apache) 将负责提供静态文件,例如 JS、CSS 和图像。 因此,任何对图像或 JS 文件的请求都会由网络服务器立即处理,而对实际页面的任何请求都将传递给您的应用程序服务器(即 Django)

在开发中,您需要告诉开发服务器实际为您的静态文件提供服务,因此您需要将以下内容添加到您的根urls.py文件中:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

有两种情况您可能无法加载 CSS 文件。

  1. 登录拦截器捕获所有请求,包括您的静态文件
  2. 浏览器无法访问您的 CSS 文件。

很容易判断你处于什么情况。你可以打开浏览器,查看是否收到了你的CSS请求。 (例如,按F12打开Chrome并检查Console )。

如果没有接收失败的错误。 也许您的登录拦截器已捕获所有内容。 然后,您可以深入了解您收到的内容,然后您会找到答案。 就我而言,我发现响应是我的登录页面,而不是我的 ccs 文件。

你应该让他们这样走。

if static('') in request.path:
    return self.get_response(request)

如果收到,您可以看到其他答案。

(我的英语不是很好。如果你愿意,你可以编辑这个答案。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM