Форматирование таблицы стилей не работает в проекте Django - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть HTML-файл, который связывает таблицы стилей следующим образом:

 <link rel="stylesheet" href="css/bootstrap.min.css">
 <link rel="stylesheet" href="css/font-awesome.min.css">
 <link rel="stylesheet" href="css/animate.css">
 <link rel="stylesheet" href="css/owl.carousel.css">
 <link rel="stylesheet" href="css/owl.theme.default.min.css">

index.html находится в корне проекта, поэтому при его открытии страница форматируется, как и ожидалось.

Я пытался скопировать этот код CSS в мой проект Django.Я поместил папку css в корень проекта.Приведенный выше HTML-код находится в templates/base.html, и я запускаю python manage.py runserver из корня проекта.Когда я делаю это, форматирование не работает.Я пробовал что-то вроде href="css/bootstrap.min.css" и даже /full/path/to/css/bootstrap.min.css, но они не работали.Я также попробовал <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">, который работает.

Как правильно ссылаться на таблицы стилей, которые находятся в папке проекта Django?

Дополнительная информация.

Любые изображения на сайте хранятся в корзине AWS.Я думаю, что помню, что читал что-то, что предполагало, что статические файлы также могут быть размещены там.Вот выдержка из моего settings.py Есть ли в нем что-то, что может вызвать конфликт?

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

STATIC_URL = '/static/'

AUTH_USER_MODEL = 'users.CustomUser'

LOGIN_REDIRECT_URL = 'home'
LOGOUT_REDIRECT_URL = 'home'

CRISPY_TEMPLATE_PACK = 'bootstrap4'

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST = 'smtp.sendgrid.com'
EMAIL_HOST_USER = 'apikey'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True


MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

AWS_STORAGE_BUCKET_NAME = 'lcc-media'
AWS_S3_REGION_NAME = 'eu-west-1'  # e.g. us-east-2
AWS_ACCESS_KEY_ID = 'Access Key'
AWS_SECRET_ACCESS_KEY = 'Secret Key'

# Tell django-storages the domain to use to refer to static files.
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME

# Tell the staticfiles app to use S3Boto3 storage when writing the collected static files (when
# you run `collectstatic`).
STATICFILES_LOCATION = 'static'
STATICFILES_STORAGE = 'custom_storages.StaticStorage'

# Tell the media app to use S3Boto3 storage when writing the media files
MEDIAFILES_LOCATION = 'media'
DEFAULT_FILE_STORAGE = 'custom_storages.MediaStorage'

# To deal with this: UserWarning: The default behavior of S3Boto3Storage is insecure and will change in django-storages
# 2.0. By default files and new buckets are saved with an ACL of 'public-read' (globally publicly readable). Version 2.0
# will default to using the bucket's ACL. To opt into the new behavior set AWS_DEFAULT_ACL = None, otherwise to silence
# this warning explicitly set AWS_DEFAULT_ACL.
# "The default behavior of S3Boto3Storage is insecure and will change "
AWS_DEFAULT_ACL = None

Ответы [ 2 ]

1 голос
/ 28 апреля 2019

Вы должны создать папку с именем static в корневой папке и поместить в нее свою папку CSS.

Ссылка на статические файлы выполняется следующим образом:

{% load static %}
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
1 голос
/ 28 апреля 2019

{% load static%} ... href = "{% static 'css / stylesheet.css'%}" (Добавьте этот код в main.py) Используйте этот статический тег перед добавлением файла css.И сделайте папку статической, а затем в ней сохраните папку css и файл .css внутри папки css.И попробуйте это.

В худшем случае (попробуйте это). Если в случае не влияет на основной HTML-файл, то попробуйте выполнить все элементы стилей только в этом основном файле base.html.И попробуйте, если какие-либо изменения влияют или нет!

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