django_heroku.settings(locals())不在collectstatic的末尾

h79rfbju  于 2022-11-13  发布在  Go
关注(0)|答案(2)|浏览(117)

我用Django,heroku和S3创建了一个Web应用程序。在生产中,静态文件的上传似乎只有在注解掉django_heroku.settings(locals())时才起作用。

#django_heroku.settings(locals())

STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

然后在HTML中,指向静态文件的URL要么在名称中进行加密,如“main.css”变为“main-5354332324.css”,并且无法访问,要么我添加

AWS_DEFAULT_ACL = "public-read"
AWS_QUERYSTRING_AUTH = False

并且静态文件的名称仍然存在,但仍然无法访问。
到目前为止,我知道django_heroku.settings(locals())会用一个默认值覆盖位置。我想知道这里到底发生了什么,什么是适合生产的解决方案,因为django_heroku.settings(locals())实际上应该在最后,据我所知应该是AWS_DEFAULT_ACL=None。

zpf6vheq

zpf6vheq1#

嘿,我有同样的问题django_heroku覆盖任何你有使用白噪声和保存到静态文件我所做的是添加这一行在我的代码底部django_heroku.settings(locals(), staticfiles=False)添加您的配置变量到heroku无论是从cli或应用程序设置

xfyts7mz

xfyts7mz2#

当我把django_heroku.settings(locals())放到settings.py模块中时,我也遇到过同样的问题。在把行修改为django_heroku.settings(locals(), staticfiles=False)后,它工作了。

相关问题