如何解决我需要在部署在 heroku 上的 django 项目网站中继续按下“公开”按钮以使图像可读可以看到图像
我目前正在做我的 django 项目,并将其部署在 heroku。对于静态文件和上传,我在 aws s3 上创建了一个存储桶。但是从我部署在 heroku 的网站上,我看不到我上传的图像,如下所示。
我发现我需要让我的存储桶可公开访问,并按下“公开”按钮,该按钮位于 s3 仪表板的“操作”处,如下所示,以使其可读(可见)。
但是每次我将图像文件上传到我的网站时,我都需要按下“公开”按钮以使图像可读(可见)。
这是我的settings.py
STATIC_URL = "/staticfiles/"
STATICFILES_Dirs = [os.path.join(BASE_DIR,"staticfiles")]
AUTH_USER_MODEL = "users.User"
MEDIA_ROOT = os.path.join(BASE_DIR,"uploads")
MEDIA_URL = "/media/"
STATIC_ROOT = os.path.join(BASE_DIR,"staticfiles")
DEFAULT_FILE_STORAGE = "config.custom_storages.UploadStorage"
STATICFILES_STORAGE = "config.custom_storages.StaticStorage"
AWS_ACCESS_KEY_ID = os.environ.get("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = os.environ.get("AWS_SECRET_ACCESS_KEY")
AWS_STORAGE_BUCKET_NAME = "heroku-nbnb-clone-bucket"
AWS_AUTO_CREATE_BUCKET = True
AWS_BUCKET_ACL = "public-read"
AWS_S3_CUSTOM_DOMAIN = f"{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com"
STATIC_URL = f"https://{AWS_S3_CUSTOM_DOMAIN}/staticfiles"
urls.py
urlpatterns = [
path("",include("core.urls",namespace="core")),path("rooms/",include("rooms.urls",namespace="rooms")),path("users/",include("users.urls",namespace="users")),path(f"{admin_url}/",admin.site.urls),path("reservations/",include("reservations.urls",namespace="reservations")),path("reviews/",include("reviews.urls",namespace="reviews")),path("lists/",include("lists.urls",namespace="lists")),path("conversations/",include("conversations.urls",namespace="conversations")),url(r"^media/(?P<path>.*)$",serve,{"document_root": settings.MEDIA_ROOT}),url(r"^static/(?P<path>.*)$",{"document_root": settings.STATIC_ROOT}),]
urlpatterns = urlpatterns + static(
settings.MEDIA_URL,document_root=settings.MEDIA_ROOT
)
custom_storages.py
from storages.backends.s3boto3 import S3Boto3Storage
class StaticStorage(S3Boto3Storage):
location = "staticfiles/"
file_overwrite = False
class UploadStorage(S3Boto3Storage):
location = "uploads/"
我该怎么做才能修复它?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。