Django:图标错误500

iqjalb3h  于 2023-01-31  发布在  Go
关注(0)|答案(3)|浏览(139)

在我的本地服务器上,我在终端中收到以下错误

[03/Oct/2011 22:49:19] "GET /favicon.ico/ HTTP/1.1" 500 65893

在我的site_base.html中,我已经有了下面的行:

<link rel="icon" href="{{ STATIC_URL }}images/favicon.ico" />

是什么原因导致此错误?如何停止此错误?

aurhwmvo

aurhwmvo1#

默认的查找浏览器是/favicon.ico。但是,由于您指定了链接,浏览器不应该这样做。很可能是您使用的特定浏览器和版本中存在bug,导致发送额外的请求,但这不是重点。
你会得到一个500错误,因为这个特定的请求进入了Django的URL处理机制,无论视图响应什么,都被提供的参数阻塞了。
检查您的urls.py并查看哪些模式将接受URL /favicon.ico/,然后,进入相应的视图并查看为什么它会导致阻塞,或者更改模式以使它不会捕获这样的URL,因为它很可能不应该放在首位。

q8l4jmvw

q8l4jmvw2#

这可能不是你所面临的100%的问题,但值得一提的是,因为你使用的是存储在静态文件夹中的自定义图标。
在Django模板中,你可以manage your static assets like this

{% load static %}
<link rel="shortcut icon" href="{% static 'img/favicon.ico' %}">

不需要将{{ STATIC_URL }}上下文变量发送到模板中。

vddsk6oq

vddsk6oq3#

在我的例子中,当我尝试登录admin面板时,问题出现了。
我的错误是:

ValueError: unsupported format character 'C' (0x43) at index 34
Internal Server Error: /favicon.ico

这个问题嵌套在我的urls.py中:
来自其他用户的建议对我有一点帮助,但最终,documentation改变了游戏规则。

from django.contrib.staticfiles.storage import staticfiles_storage # for `favicon` -> https://simpleit.rocks/python/django/django-favicon-adding/

from . import views

urlpatterns = [
    path('favicon.ico', RedirectView.as_view(url=staticfiles_storage.url('project_foo\logos\media\favicon.ico')))]

我的意思是线:path('favicon.ico', RedirectView.as_view(url=staticfiles_storage.url('project_foo\logos\media\favicon.ico')))]

**正如文档中所引用的:**django.contrib.staticfiles将静态文件从每个应用程序(以及您指定的任何其他位置)收集到一个位置,以便在生产环境中轻松使用。

在我的例子中,我指出了一个文件,而不是位置。在用户页面上一切都很好,但在管理面板上抛出了一个错误。
我的解决方案是:

`path('favicon.ico', RedirectView.as_view(url=staticfiles_storage.url('project_foo\logos\media')))]`

相关问题