django网站favicon.ico不显示原因排查


类别:web开发   

发布时间:2019/09/05 20:34:24   更新时间:2020/07/31 19:49:56


django开发的网站,如果favicon.ico不显示,要考虑这么几个方面:

 

1、www.yourweb.com/favicon.ico/能不能显示?

如果不能,那么你url.py可能缺少一条路由:

path('favicon.ico', RedirectView.as_view(url='static/img/favicon.ico')),

 

2、如果有了这个路由,

www.yourweb.com/favicon.ico/

会跳转为:

https://www. yourweb.com/static/img/favicon.ico

能跳转不?

如果不能,那么你额static目录可能不能访问。

需要url.py加如下一句:

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

当然settings.py里边,肯定得有:

STATIC_URL = '/static/'
STATIC_ROOT =  os.path.join(BASE_DIR,'static')

 

3、如果有跳转了,还不能显示。

那么,你的STATIC_ROOT这个目录里,是不是没有favicon.ico文件?

注意,如果用前端打包技术打包出来的前端代码,这个文件可能就是没有。需要你手动给加进去。

 

注意一点:比如vue开发,nodejs调试的时候,favicon.ico是由html中,如下代码决定的。

<link rel="icon" href="<%= BASE_URL %>favicon.ico">

本篇文章,是把这个前端代码打包,部署到django上,显示favicon.ico所需要的。

 

4、如果还是不行。

nginx是不是没有添加如下?

location ^~ /static {

    root /home/xxx/; (添加你的BASE_DIR)

}

 

5、如果还是显示不出来,或者显示效果不好。

那么,你的favicon.ico是不是16*16像素的?

是否要重新做一个。

这个网站可以做:https://tool.lu/favicon/

 


本文网址:https://www.pyfield.com/blog/?id=29