Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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/1/amazon-web-services/13.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管理静态文件URL的参数_Django_Amazon Web Services_Amazon S3 - Fatal编程技术网

“神秘”;签名;及;“到期”;添加到Django管理静态文件URL的参数

“神秘”;签名;及;“到期”;添加到Django管理静态文件URL的参数,django,amazon-web-services,amazon-s3,Django,Amazon Web Services,Amazon S3,我有一个Django 1.4 webapp,使用storages.backends.s3boto.s3botostrage作为文件存储后端,为AWS S3中的静态文件提供服务 除了管理静态文件,一切都正常。在检查管理员页面源代码时,很明显问题来自管理员静态文件URL,例如管理员的base.css样式表: <link rel="stylesheet" type="text/css" href="https://watchdog_staticfiles.s3.amazonaws.com/adm

我有一个Django 1.4 webapp,使用
storages.backends.s3boto.s3botostrage
作为文件存储后端,为AWS S3中的静态文件提供服务

除了管理静态文件,一切都正常。在检查管理员页面源代码时,很明显问题来自管理员静态文件URL,例如管理员的
base.css
样式表:

<link rel="stylesheet" type="text/css" href="https://watchdog_staticfiles.s3.amazonaws.com/admin/css/base.css?Signature=sFKzAavHHKYdJQVDGTwwSAyrrjc%3D&Expires=1387824617&AWSAccessKeyId=AKIAJAYZSKEJIVD52OCQ" />

问题是存在
签名
过期
AWSAccessKeyId
URL参数。有了这些,链接将导致来自AWS的拒绝访问响应。如果没有它们,也就是说,只要转到普通URL,就没有问题(因为文件被设置为公开可读)

这些signature/expires/etc参数没有添加到我的主webapp中的静态URL链接中,只是在admin中


所以我的问题是——它们是从哪里来的,我如何摆脱它们呢?

我猜您的前端使用了
{{STATIC\u URL}}
?管理员使用
{%static%}
模板标记,所以这可能是difference@sk1p-你说得对!这意味着管理员URL是由
s3botostrage
生成的,对吗?研究它为什么会创建无效的URL。我已经检查了我的AWS凭据是否正确。我怀疑是过期了,因为所有东西都工作了很长一段时间,然后无缘无故地坏了——这与过期的东西一致。@sk1p——谜团解决了。我将计算机的日期设置为昨天(出于不相关的原因),这导致
s3botostrage
生成从S3的角度来看已经过期的URL。把日期放回今天,就把它修好了。谢谢你给我的线索帮助我解决了这个问题。看看这个: