给你的 Django1.7 添加 favicon

2014/12/16 20:51 下午

为了给 Blog 加上图标,我翻了好多地方,都是用的旧版Django的方法,在urls.py中加入以下语句,现在已被取代:

url(r'^favicon\.ico$', 'django.views.generic.simple.redirect_to', {'url': '/static/images/favicon.ico'}),

对于Django1.6以后的版本,django.views.generic.simple这个类已经不存在了,取而代之的是django.views.generic.base这个类中的RedirectView这个方法。

所以,对于新的方法,我们可以这么写

(r'^favicon\.ico/$', RedirectView.as_view(url='/static/images/favicon.ico')),

如果你不喜欢这样,还可以使用第二种方法。
在views.py中这样写一个新方法

from django.shortcuts import redirect

……
def favicon_redirect(request):
        return redirect('/static/images/favicon.ico')

之后,在urls.py中对于favicon.ico的请求调用这一函数就好了。

如果出现favicon的500错误,你需要在浏览器中直接访问 /favicon.ico 才能看到具体错误内容;D。