首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django管道+ Django存储+ S3:查询字符串噩梦

Django管道+ Django存储+ S3:查询字符串噩梦
EN

Stack Overflow用户
提问于 2014-02-02 19:20:29
回答 1查看 1.3K关注 0票数 0

我正在使用django-pipeline + django-storageS3后端,但我要疯狂地尝试使用{% static %}标记正确加载静态文件。我阅读并跟踪管道文档:http://django-pipeline.readthedocs.org/en/latest/storages.html#using-with-other-storages

我创建了以下混合类:

代码语言:javascript
复制
from django.contrib.staticfiles.storage import CachedFilesMixin

from pipeline.storage import PipelineMixin

from storages.backends.s3boto import S3BotoStorage


class S3PipelineStorage(PipelineMixin, CachedFilesMixin, S3BotoStorage):
    pass

在我的生产设置文件中,我有:

代码语言:javascript
复制
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 = ''

当我使用这些设置运行集合静态时,所有设置都可以正常工作,但是可以使用:

代码语言:javascript
复制
{% static 'path/file.xxx' %}

我得到一个包含querystring的URL,尽管我在AWS_QUERYSTRING_AUTH中设置了AWS_QUERYSTRING_AUTH,因此我的静态文件没有加载…通过删除查询字符串,我可以提前加载它们。我也尝试在myapp.S3PipelineStorage中设置“myapp.S3PipelineStorage”,但它似乎被忽略了:

为什么设置不受尊重?什么是有效的解决方案,以消除这种qs?(我正在考虑用一个自定义过滤器把它去掉…但我不喜欢写这样的“补丁”)…最后,如果我必须保留身份验证查询字符串,为什么不能工作?如何调试此行为?

编辑:它工作…这是一个与缓存相关的问题:\\

EN

回答 1

Stack Overflow用户

发布于 2014-02-02 19:26:06

看看这个answer。也许这是一个有序的问题(例如django-存储覆盖您的设置)。也许试着把每桶都装好?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21515036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档