【问题标题】:Having issues loading django admin static files加载 django admin 静态文件时遇到问题
【发布时间】:2021-01-24 05:10:51
【问题描述】:

我在使用最新的 django 为 django admin 加载静态文件时遇到问题。现在我尝试了多种方法,非常感谢帮助。有关我使用 pythonanywhere 进行部署的信息。

This is the settings.py file 


 """
Django settings for MyDjangoApp project.

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

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

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

import os
import server_keys as sk

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
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/2.2/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = sk.django_key

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

ALLOWED_HOSTS = ['192.168.1.22','localhost','username.pythonanywhere.com ','username.pythonanywhere.com']


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'regs',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'MyDjangoApp.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['regs/templates/regs'],
        '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 = 'MyDjangoApp.wsgi.application'


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

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


# Password validation
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


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

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'Asia/Kuwait'

USE_I18N = True

USE_L10N = True

USE_TZ = True


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

STATIC_URL = '/static/'
STATIC_ROOT = "/home/username/main/static"
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,"static"),
    ]

根据大多数教程和指南,您只需设置路径并运行 py manage.py collectstatic 然后它会起作用,但对我来说不是这样。我还加载了正常的静态文件,但没有加载 django 管理员。

我的目录如下所示:/home/username/main/Projectroot 在 python 的任何地方,我将 url 设置为“静态”,将 root 设置为 /home/username/main/static。

如果我缺少更多信息,请告诉我,我很乐意部署我的项目并克服这个简单但烦人的部分,谢谢!

【问题讨论】:

  • 你试过 STATIC_ROOT = os.path.join(BASE_DIR, 'static') 吗?并再次运行 collectstatic ?
  • 是的,我已经尝试过这种方法,但仍然无法加载管理文件。
  • PythonAnywhere上有一个帮助页面可以帮助你调试静态文件映射:help.pythonanywhere.com/pages/DebuggingStaticFiles
  • 我在查找我制作的静态文件时没有问题。我在加载管理页面的静态文件时遇到问题。

标签: python django web django-admin


【解决方案1】:

免责声明:我不是专业人士

由于您使用的是虚拟环境,因此管理文件位于您安装 django 的位置,您可以通过运行python manage.py findstatic admin/js/core.js 来确认。

查看django static files doc 了解更多信息。

我使用的一个技巧(开发服务器)是将此文件复制到我的基本 /static/admin 文件夹中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-29
    • 2021-05-03
    • 1970-01-01
    • 2020-06-24
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    相关资源
    最近更新 更多