Heroku在使用Django服务静态文件时遇到的问题
我已经尝试了一段时间,在heroku的生产过程中提供静态文件,但它不起作用 我在Python2.7中使用Django 1.8 我试过很多东西:Heroku在使用Django服务静态文件时遇到的问题,django,heroku,amazon-s3,static,Django,Heroku,Amazon S3,Static,我已经尝试了一段时间,在heroku的生产过程中提供静态文件,但它不起作用 我在Python2.7中使用Django 1.8 我试过很多东西: 更改静力学的路径 我使用了一个带有AWS s3的服务器,它会将带有collect static的StaticFile发送到服务器,但是当您打开页面时,它不会加载 我遵循了django文档以及herokus 我也尝试过这些解决方案: 还有很多其他的 我当前的静态设置是 AWS_STORAGE_BUCKET_NAME = 'BUCKET_NA
- 更改静力学的路径
- 我使用了一个带有AWS s3的服务器,它会将带有collect static的StaticFile发送到服务器,但是当您打开页面时,它不会加载
- 我遵循了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>
{%load static from staticfiles%}
标题
我的URL看起来像这样
urlpatterns = [..
]
if not settings.DEBUG:
urlpatterns += (r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}),
urlpatterns=[。。
]
如果不是settings.DEBUG:
urlpatterns+=(r'^static/(?P.*)$,'django.views.static.service',
{'document_root':settings.STATIC_root}),
如果有人能帮我的话,我会非常感激的。所以我终于把它修好了,我想我应该把安斯威尔留在这里。 我基本上重播了整件事,并遵循这个链接 只需确保您在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>
*
得到
3000
授权
请展示一个链接到静态文件的模板示例。我添加了模板和url示例,如果你们还需要什么,请告诉我