« 上一篇 g_resources.DistributionNotFound: The pytz distribution was not found and is required by DjangoPhthon Django框架WEB开发:一个菜鸟的入门心得 下一篇 »

原创:django配置根目录访问静态文件favicon.ico 返回状态要200不要302

一般前端开发者都不会在意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">