微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我需要在部署在 heroku 上的 django 项目网站中继续按下“公开”按钮以使图像可读可以看到图像

如何解决我需要在部署在 heroku 上的 django 项目网站中继续按下“公开”按钮以使图像可读可以看到图像

我目前正在做我的 django 项目,并将其部署在 heroku。对于静态文件上传,我在 aws s3 上创建了一个存储桶。但是从我部署在 heroku 的网站上,我看不到我上传的图像,如下所示。

enter image description here

我发现我需要让我的存储桶可公开访问,并按下“公开”按钮,该按钮位于 s3 仪表板的“操作”处,如下所示,以使其可读(可见)。

enter image description here

但是每次我将图像文件上传到我的网站时,我都需要按下“公开”按钮以使图像可读(可见)。

这是我的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 举报,一经查实,本站将立刻删除。