Heroku Django — Мне нужно запускать collectstatic для каждого изменения, которое я делаю в разработке

#python #django #heroku #django-staticfiles

Вопрос:

Я успешно развернул свое веб-приложение в heroku. Теперь я хочу продолжить разработку на локальном хосте, который я получаю от ‘python manage.py runserver», но он не перезагружает CSS, пока я не сделаю «python manage.py соберите статику». (Я пробовал F5 и Ctrl F5).

Перед развертыванием он автоматически перезагрузит все css при обновлении.

Вот мой settings.py файл:

 """ Django settings for mysite project.  Generated by 'django-admin startproject' using Django 3.2.7.  For more information on this file, see https://docs.djangoproject.com/en/3.2/topics/settings/  For the full list of settings and their values, see https://docs.djangoproject.com/en/3.2/ref/settings/ """ import os from pathlib import Path import environ # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent  env = environ.Env() environ.Env.read_env()  # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/  # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = env('SECRET_KEY') # SECURITY WARNING: don't run with debug turned on in production! DEBUG = False  ALLOWED_HOSTS = [  '192.168.1.6',  '127.0.0.1',  'mahmoudhamdyportfolio.herokuapp.com'  ]   # Application definition  INSTALLED_APPS = [  'django.contrib.admin',  'django.contrib.auth',  'django.contrib.contenttypes',  'django.contrib.sessions',  'django.contrib.messages',  'django.contrib.staticfiles',  'main.apps.MainConfig', ]  MIDDLEWARE = [  'django.middleware.security.SecurityMiddleware',  'whitenoise.middleware.WhiteNoiseMiddleware',  '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 = '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/3.2/ref/settings/#databases  DATABASES = {  'default': {  'ENGINE': 'django.db.backends.sqlite3',  'NAME': BASE_DIR / 'db.sqlite3',  } }   # Password validation # https://docs.djangoproject.com/en/3.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/3.2/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/3.2/howto/static-files/  STATIC_URL = '/static/'  STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')  # Default primary key field type # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field  DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'  EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_HOST_USER = env('EMAILFROM') EMAIL_HOST_PASSWORD = env('PASSWORD') RECIPIENT_ADDRESS = env('EMAILTO') EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_USE_SSL = False  if 'DATABASE_URL' in os.environ:  import dj_database_url  DATABASES = {'default': dj_database_url.config()}