我想看到一个异常,如果settings.DEBUG为true,并且这样的行由模板引擎处理:

  <link rel="stylesheet" type="text/css"
        href="{% static "foo/css/file-name-with-typo.css" %}">
static模板标签的文档:https://docs.djangoproject.com/en/1.9/ref/contrib/staticfiles/#static

背景:异常将触发我们的持续集成系统失败,并且损坏的设备将无法正常使用。我不想在生产中运行会产生损坏链接的代码。

最佳答案

如果文件不存在,请重写url()方法以引发错误:

from django.core.files.storage import FileSystemStorage


class CustomFileSystemStorage(FileSystemStorage):
    def url(self, name):
        if not self.exists(name):
            raise ValueError('"%s" does not exist.' % name)
        return super(CustomFileSystemStorage, self).url(name)

在您的settings.py中:
DEFAULT_FILE_STORAGE = 'mymodule.CustomFileSystemStorage'

10-06 15:49
查看更多