我的网站是由Django制作并部署在AWS上的,在我使用collectstatic将CSS文件上传到Amazon S3后,它不应用CSS文件。
[ec2-user]$ python manage.py collectstatic
我检查了Amazon S3上的一个CSS文件,但我不确定哪个是我应该在settings.py中设置的URL目标。
我settings.py应该修改www.example.com下面的哪一部分?
谢谢大家。
settings.py
import os
BASE_DIR = Path(__file__).resolve().parent.parent
#################################################################
##### Static Files (CSS, JavaScript, Images)
#################################################################
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
#################################################################
##### Amazon S3
#################################################################
DEFAULT_FILE_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"
STATICFILES_STORAGE = "storages.backends.s3boto3.S3StaticStorage"
AWS_LOCATION = "static"
AWS_STORAGE_BUCKET_NAME = "mydomain-bucket"
AWS_S3_REGION_NAME = "ap-northeast-1"
# AWS_S3_CUSTOM_DOMAIN = "%s.s3.amazonaws.com" % AWS_STORAGE_BUCKET_NAME
AWS_S3_CUSTOM_DOMAIN = "{}.s3.{}.amazonaws.com".format(AWS_STORAGE_BUCKET_NAME, AWS_S3_REGION_NAME)
# AWS_DEFAULT_ACL = None
STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
index.html
{% load static %}
{% load django_bootstrap5 %}
<head>
<link href="{% static 'some-of-app/assets/vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
</head>
火狐
<link href="https://mydomain-bucket.s3.ap-northeast-1.amazonaws.com/static/some-of-app/assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
Python 3.9 Django 4.1 Apache 2
1条答案
按热度按时间x6yk4ghg1#
对不起,我可以解决这个问题。我阻止了“公共访问”,默认的亚马逊S3。在我删除检查后,我的网站可以应用CSS文件。