我们正在使用django 站点地图框架来生成搜索引擎友好的 xml 站点地图。它工作正常。很高兴使用和自定义您自己的需求。
我知道我可以重写用于 xml 站点地图的模板,或者使用普通的数据库查询等生成我们系统中所有页面的列表,但很难相信没有针对这种常见问题的预配置解决方案。
我只想在普通(html)前端视图中使用与我们的 xml 站点地图中使用的列表相同的列表。
TL;博士:
构建旨在帮助人们在我们网站上查找内容(而不是机器人)的 html 站点地图的最佳/默认方式是什么?
我们正在使用django 站点地图框架来生成搜索引擎友好的 xml 站点地图。它工作正常。很高兴使用和自定义您自己的需求。
我知道我可以重写用于 xml 站点地图的模板,或者使用普通的数据库查询等生成我们系统中所有页面的列表,但很难相信没有针对这种常见问题的预配置解决方案。
我只想在普通(html)前端视图中使用与我们的 xml 站点地图中使用的列表相同的列表。
TL;博士:
构建旨在帮助人们在我们网站上查找内容(而不是机器人)的 html 站点地图的最佳/默认方式是什么?
您可以将站点地图处理器生成的 xml 嵌入到标准 html 中
url(r'^sitemap/','django.contrib.sitemaps.views.sitemap', \
{'sitemaps' : sitemaps,
'template_name' : '<yoursite>/usr_sitemap.html',
'mimetype' : 'None'}),
将“mimetype”设置为 none 将允许您在用于生成的模板中包含 html 代码。这将生成包含站点地图 xml 代码的 html。然后,您需要使用 css 对其进行样式设置。示例模板(usr_sitemap.html)将是:
{% extends 'base.html' %}
{% load staticfiles %}
{% block content %} << the content section of the base.html
<?xml version="1.0" encoding="UTF-8" type='text/css' href='{% static '<yoursite>/your_css.css' %}'?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
{% spaceless %}
{% for url in urlset %}
<url>
<loc>{{ url.location }}</loc>
{% if url.lastmod %}<lastmod>{{ url.lastmod|date:"Y-m-d" }}</lastmod>{% endif %}
{% if url.changefreq %}<changefreq>{{ url.changefreq }}</changefreq>{% endif %}
{% if url.priority %}<priority>{{ url.priority }}</priority>{% endif %}
<news:news>
<news:tag1> blabla </news:tag1>
<news:tag2> blabla </news:tag2>
</news:news>
</url>
{% endfor %}
{% endspaceless %}
</urlset>
{% endblock %}