Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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模板标记'static'呈现一个损坏的URL_Django_Django Templates - Fatal编程技术网

我想要一个例外,如果django模板标记'static'呈现一个损坏的URL

我想要一个例外,如果django模板标记'static'呈现一个损坏的URL,django,django-templates,Django,Django Templates,如果settings.DEBUG为true,并且模板引擎处理了这样的行,则我希望看到异常: <link rel="stylesheet" type="text/css" href="{% static "foo/css/file-name-with-typo.css" %}"> 静态模板标签的文档: 背景:一个异常将触发我们的持续集成系统失败,而被破坏的系统将无法运行。我不希望在生产环境中运行产生断开链接的代码。如果文件不存在,请重写url()方法以引发错

如果settings.DEBUG为true,并且模板引擎处理了这样的行,则我希望看到异常:

  <link rel="stylesheet" type="text/css" 
        href="{% static "foo/css/file-name-with-typo.css" %}">

静态
模板标签的文档:

背景:一个异常将触发我们的持续集成系统失败,而被破坏的系统将无法运行。我不希望在生产环境中运行产生断开链接的代码。

如果文件不存在,请重写
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'

使用正确的工具解决问题,避免仅仅为了解决QA问题而对django contrib包进行复杂的修改。你看过这个吗@MauroRocco您提供的链接使用LinkChecker。是的,这会有用的。但我想这会产生比需要更多的负载。因为我们在django应用程序中使用
reverse()
来创建所有链接,所以检查它们是没有意义的。对不起,但是您担心的是哪种加载?你在测试服务器上部署你的应用程序,Jenkins会扫描它,它就结束了。反转或不反转它将只作为浏览器导航应用程序。如果你真的想这样做,我建议将你的模板标记扩展为contrib static标记。如果需要调试,请检查该文件。查看这里的源代码可以帮助您:@MauroRocco我建议不要修改模板标记,而是对存储后端进行子类化,以便它检查(可能)
.url()方法中是否存在相关文件。(只需调用
.exists()
,然后根据需要推迟到super或引发异常。)