apache 我的网站在AWS上使用Django,但没有在Amazon S3上应用CSS文件

nzk0hqpo  于 2023-03-31  发布在  Apache
关注(0)|答案(1)|浏览(121)

我的网站是由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

x6yk4ghg

x6yk4ghg1#

对不起,我可以解决这个问题。我阻止了“公共访问”,默认的亚马逊S3。在我删除检查后,我的网站可以应用CSS文件。

相关问题