gpt4 book ai didi

django - Heroku 使用 Django 提供静态文件时出现问题

转载 作者:行者123 更新时间:2023-12-02 09:01:28 25 4
gpt4 key购买 nike

我已经尝试了一段时间在生产过程中使用 heroku 提供静态文件,但它不起作用。

我使用的是 Django 1.8 和 python 2.7。

我尝试了很多事情:

  • 更改静态路由
  • 我使用了带有AWS s3的服务器,它会将带有collect static的静态文件发送到服务器,但是当您打开页面时它不会加载。
  • 我遵循了 django 文档以及 herokus。

我尝试过这些解决方案:

还有很多其他的。

我当前的静态设置是

AWS_STORAGE_BUCKET_NAME = 'BUCKET_NAME'
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_PRELOAD_METADATA = True
AWS_S3_SECURE_URLS = True
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = "https://%s/" % AWS_S3_CUSTOM_DOMAIN
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

模板示例

<!DOCTYPE html>
{% load static from staticfiles %}
<html>

<head>
<meta charset="UTF-8">
<title>TITLE</title>
</head>

<body>

<img src="{% static "images/404.jpg" %}" alt="Page Not Found (404)." style="position: absolute; left: 50%; top: 50%; margin-left: -285px; margin-top: -190px;">
<img src="{% static "medcstatic/images/404.jpg" %}" alt="Page Not Found (404)." style="position: absolute; left: 50%; top: 50%; margin-left: -285px; margin-top: -190px;">

</body>

</html>

我的网址如下所示

urlpatterns = [..
]
if not settings.DEBUG:
urlpatterns += (r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}),

如果有人可以帮助我,我将非常感激。

最佳答案

所以我终于解决了这个问题,并认为我应该把答案留在这里。我基本上重做了整个事情并点击这个链接 https://www.caktusgroup.com/blog/2014/11/10/Using-Amazon-S3-to-store-your-Django-sites-static-and-media-files/

只需确保从一开始就在 AWS 中正​​确设置权限。

{
"Statement": [
{
"Sid":"PublicReadForGetBucketObjects",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::BUCKET-NAME/*"
]
},
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::BUCKET-NAME",
"arn:aws:s3:::BUCKET-NAME/*"
],
"Principal": {
"AWS": [
"USER-ARN"
]
}
}
]

}

以及正确的 cors 设置:

   <CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>

关于django - Heroku 使用 Django 提供静态文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32655209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com