迫使django' s {%static%}无声地失败

时间:2014-08-04 08:27:17

标签: python django amazon-s3

我正在使用自定义静态文件存储:

class StaticFilesStorage(CachedFilesMixin, S3BotoStorage):
    pass

(CachedFilesMixin用于缓存清除)。

我的问题是,当我在我的模板{% static "file_that_does_not_exist.jpg" %}中时,模板未呈现,我得到异常

ValueError: The file 'file_that_does_not_exist.jpg' could not be found with <StaticFilesStorage object at 0x03AE4C70>.

它失败了,因为文件不在S3上,所以S3BotoStorage不能提供它,但这意味着如果例如我的logo.jpg文件由于某种原因丢失,那么整个网站都会关闭,这不是很好.. < / p>

有没有办法迫使{% static %}无声地失败?

1 个答案:

答案 0 :(得分:0)

目前这对我有用:

class StaticFilesStorage(CachedFilesMixin, S3BotoStorage):
    def exists(self, name):
        return True

这会覆盖S3BotoStorage.exists(),因此{% static %}不会引发异常并生成S3网址(它会向浏览器提供404,但确定无误)。