【原创:django配置根目录访问静态文件favicon.ico 返回状态要200不要302】SEO资讯-SEO祥子博客
【原创:django配置根目录访问静态文件favicon.ico 返回状态要200不要302】SEO资讯-SEO祥子博客
一般前端开发者都不会在意favico.com放在什么目录,是否经历了跳转。但是,对一名SEO专家来说,祥子不希望页面请求不能有任何跳转。所以,就有了下面这个办法:Django使用HttpResponse返回图片并显示。这可能是django项目把静态文件放在根目录,能正常访问并返回200状态的唯一方法。根目录访问favicon.ico并返回200状态的使用实例:
favicon.py:
from django.http import HttpResponse
def my_image(a="static/seoxiangzi/img/favicon.ico"):
#d = path.dirname(__file__)
#imagepath = path.join(d,"static/img/favicon.ico")
imagepath = a
image_data = open(imagepath,"rb").read()
return HttpResponse(image_data,content_type="image/x-icon")
URLS.py:
path('favicon.ico',plugin_favicon.my_image,name="favicon"),
django的favico.ico文件根目录方式访问的缺点:
跟放静态目录相比,更耗性能,如在这个favicon.py的代码并不多,而且不管是浏览器还是搜索引擎,都不会频繁请求favicon.ico。如果你对性能极端在意,请将favicon.ico放在静态文件目录,然后在前端模板META里引用:<link rel="shortcut icon" href="/static/seoxiangzi/img/favicon.ico">