簡體   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