Настройка файла CSS в Django-Оскар, используя меньше - PullRequest
0 голосов
/ 08 октября 2018

Я довольно новичок в django oscar и имею только базовое понимание интерфейса сайта.

Я хочу изменить styles.css в django oscar.Я пытался изменить непосредственно в styles.css, но каким-то образом при обновлении localhost не обнаруживает изменений (css по умолчанию).

Я пытался изменить файл меньшего размера, установить npm, установить меньше и изменить настройкив OSCAR_USE_LESS = True.Локальный хост вообще даже не рендерил файл css, только шаблон.

Когда я пишу команду make css в корневой каталог, произошла следующая ошибка, хотя я установил меньше.

make: *** No rule to make target `css'.  Stop.

, поэтому я действительно не знаю, что не так с моими настройками или установленными приложениями.

Установки

import os
import oscar

# Path helper - going into /Users/dion/Dev/dioncoffee/x
location = lambda x: os.path.join(
    os.path.dirname(os.path.dirname(os.path.realpath(__file__))), x)

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

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '=%*t%wzzw^hs5l2o@oq2ae-*&wde0bko4!hxl%=uqb$!5po$tt'

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

ALLOWED_HOSTS = []


# Application definition

from oscar import get_core_apps

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.flatpages',
    'django_extensions',

    'compressor',
    #'apps.gateway',     # For allowing dashboard access
    'widget_tweaks',
] + get_core_apps(
      ['apps.promotions']
      )

SITE_ID = 1

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',
    'oscar.apps.basket.middleware.BasketMiddleware',
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
]

ROOT_URLCONF = 'dioncoffee.urls'

from oscar import OSCAR_MAIN_TEMPLATE_DIR

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [            
            location('dioncoffee/templates'),
            oscar.OSCAR_MAIN_TEMPLATE_DIR,
            ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.template.context_processors.i18n',
                'django.contrib.messages.context_processors.messages',

                'oscar.apps.search.context_processors.search_form',
                'oscar.apps.promotions.context_processors.promotions',
                'oscar.apps.checkout.context_processors.checkout',
                'oscar.apps.customer.notifications.context_processors.notifications',
                'oscar.core.context_processors.metadata',
            ],
        },
    },
]

WSGI_APPLICATION = 'dioncoffee.wsgi.application'

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

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dioncoffee',
        'USER': 'dion',
        'PASSWORD': '',
        'HOST': '127.0.0.1',
        'PORT': '',
    }
}


# Password validation
# https://docs.djangoproject.com/en/2.1/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',
    },
]

AUTHENTICATION_BACKENDS = (
    'oscar.apps.customer.auth_backends.EmailBackend',
    'django.contrib.auth.backends.ModelBackend',
)

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

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',
    },
}

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

# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = location("public/media")

STATIC_ROOT = location('public/static')

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com", "http://example.com/media/"
MEDIA_URL = '/media/'

STATIC_URL = '/static/'

# /Users/dion/Dev/dioncoffee/static/
STATICFILES_DIRS = (
    location('static'),
)

from oscar.defaults import *

OSCAR_DEFAULT_CURRENCY = 'EUR'

OSCAR_CURRENCY_FORMAT = {
    'USD': {
        'currency_digits': False,
        'format_type': "accounting",
    },
    'EUR': {
        'format': u'#,##0\xa0¤',
    }
}

USE_LESS = True
COMPRESS_ENABLED = False
COMPRESS_PRECOMPILERS = (
('text/less', 'lessc {infile} {outfile}'),
)
COMPRESS_OFFLINE_CONTEXT = {
'STATIC_URL': 'STATIC_URL',
'use_less': USE_LESS,
}

Мои файлы каталогов

enter image description here

И я использую Python 3.6.5.

1 Ответ

0 голосов
/ 09 октября 2018

make css предназначен только для разработки на самом Оскаре - он не будет работать в вашем проекте.Я не понимаю, почему подход USE_LESS потерпит неудачу, если вы находитесь в режиме отладки.

Тем не менее, я думаю, что вам лучше переопределить CSS, чем полагаться на USE_LESS, который, вероятно,быть полностью удаленным в будущем и предназначенным только для разработки.

Вы должны иметь возможность переопределить CSS, если вы помещаете в нужное место.

Если у вас есть CSS внутри приложения, тогда вам нужно войти внутрь app_dir/static/oscar/css/style.css и вам нужно иметь 'django.contrib.staticfiles.finders.AppDirectoriesFinder' в настройке STATICFILES_FINDERS.

В качестве альтернативы, если у вас есть отдельный каталог для статических файлов, вам нужно включить 'django.contrib.staticfiles.finders.FileSystemFinder' в настройку, а также указать STATICFILES_DIRS, чтобы сообщить Django, где находится этот каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...