Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django管道+;Django存储&x2B;S3:查询字符串噩梦_Django_Amazon S3_Django Storage_Django Pipeline - Fatal编程技术网

Django管道+;Django存储&x2B;S3:查询字符串噩梦

Django管道+;Django存储&x2B;S3:查询字符串噩梦,django,amazon-s3,django-storage,django-pipeline,Django,Amazon S3,Django Storage,Django Pipeline,我正在使用django管道+django存储和S3后端,但我正在疯狂地尝试使用{%static%}标记正确加载我的静态文件。 我阅读并遵循管道文档: 我创建了以下混合类: from django.contrib.staticfiles.storage import CachedFilesMixin from pipeline.storage import PipelineMixin from storages.backends.s3boto import S3BotoStorage cl

我正在使用django管道+django存储S3后端,但我正在疯狂地尝试使用
{%static%}
标记正确加载我的静态文件。 我阅读并遵循管道文档:

我创建了以下混合类:

from django.contrib.staticfiles.storage import CachedFilesMixin

from pipeline.storage import PipelineMixin

from storages.backends.s3boto import S3BotoStorage


class S3PipelineStorage(PipelineMixin, CachedFilesMixin, S3BotoStorage):
    pass
在我的生产设置文件中,我有:

AWS_QUERYSTRING_AUTH = False
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = 'myapp.S3PipelineStorage'
AWS_ACCESS_KEY_ID = 'xxx'
AWS_SECRET_ACCESS_KEY = 'xxx
AWS_STORAGE_BUCKET_NAME = 'mybucket'
from datetime import datetime, timedelta
AWS_HEADERS = {
    'Expires': (datetime.now() + timedelta(days=365*10)).strftime('%a, %d %b %Y 00:00:00 GMT')
}
STATIC_URL = 'https://mybucket.s3.amazonaws.com/'
STATIC_ROOT = ''
当我使用这些设置运行collectstatic时,所有设置都会正常工作,但使用:

{% static 'path/file.xxx' %}
我得到一个包含querystring auth的URL,尽管我在
AWS\u querystring\u auth
中设置了
False
,因此我的静态文件不会加载……通过删除该querystring,我可以很快地加载它们。 我还尝试在
myapp.S3PipelineStorage
中设置“
querystring\u auth=False
”,但似乎被忽略了:(

为什么不尊重设置?有什么有效的解决方案可以删除该qs?(我正在考虑使用自定义过滤器将其删除…但我讨厌编写这样的“补丁”)…最后,如果我必须保留该验证查询字符串,为什么不起作用?如何调试此行为

编辑: 这是一个与缓存相关的问题:|

看看这个。也许这是顺序问题(例如,django存储覆盖了您的设置)。
可能尝试设置每个存储桶?

我已经看到了答案,但老实说,我无法解决我的问题…我的意思是,我没有自己初始化S3BOtograge的实例…那么我该怎么办?(目前我还尝试在管道后导入“存储”应用程序,并移动AWS_QUERYSTRING_AUTH,但它无论如何都不起作用)