Django错误(外部IP):服务器内部错误:/ico/apple-touch-icon-precomposed.png
我的Django应用现在在用户尝试访问不存在的页面时会发送错误报告,这本来就是应该的。
但是当我通过我的平板电脑(安卓和苹果)使用这个Django应用时,我收到了一个关于这个错误的邮件。
[Django] ERROR (EXTERNAL IP): Internal Server Error: /ico/apple-touch-icon-precomposed.png
我的HTML头部看起来是这样的。
{% load static %}
<link rel="icon" href="{% static 'favicon.ico' %}" type="x-icon" />
这是我的静态文件路径,以防万一。
|-- static
|-- css
|-- img
|-- js
|-- ico
|-- favicon.png
|-- apple-touch-icon-precomposed.png
|-- favicon.ico
我在网上查了一下,发现了关于错误报告的这篇文章,然后尝试在settings.py里添加了一些内容,但没有成功。
import re
IGNORABLE_404_URLS = (
re.compile(r'^/ico/apple-touch-icon-precomposed\.png$'),
re.compile(r'^/favicon\.ico$'),
re.compile(r'^/robots\.txt$'),
)
我该怎么做才能避免收到关于favicon的服务器错误邮件呢?
有没有人知道该怎么解决这个问题?我是不是漏掉了什么?
谢谢大家的帮助!
2 个回答
0
我觉得苹果设备会在用户把某个网站添加到设备上时发出这些请求。
这就像网站的小图标(favicon)。要解决这个问题,你需要准备两个100×100像素的png格式图片,分别命名为apple-touch-icon-precomposed.png和apple-touch-icon.png,然后把它们上传到服务器的根目录。
对我来说,这个错误就消失了。
1
这可能听起来有点搞笑,但这是我解决问题的方法。
我在我的头部(header)里添加了一些额外的内容。确保先加载最小的图片,关于这方面的更多信息,你可以点击这里查看。
{% load static %}
<link rel="icon" href="{% static 'favicon.ico' %}" type="x-icon" />
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="{% static 'ico/apple-touch-icon-72-precomposed.png' %}" type="image/png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="{% static 'ico/apple-touch-icon-114-precomposed.png' %}" type="image/png">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="{% static 'ico/apple-touch-icon-144-precomposed.png' %}" type="image/png">
<link rel="icon" href="{% static 'ico/favicon.png' %}" type="image/png">
最后,我把额外的图片添加到了静态文件里。
|-- static
|-- css
|-- img
|-- js
|-- ico
|-- favicon.png
|-- apple-touch-icon-precomposed.png
|-- apple-touch-icon-72x72-precomposed.png
|-- apple-touch-icon-114x114-precomposed.png
|-- apple-touch-icon-144x144-precomposed.png
|-- favicon.ico
希望这对某些人有帮助。