Django网站地图 - URL前出现双http://

2 投票
1 回答
676 浏览
提问于 2025-04-18 07:13

在Django 1.4.12中,我有一个网站地图类:

class MySitemap(Sitemap):
    def items(self):
        return ['/my/url1/',
                '/my/url2/',]

    def location(self, obj):
        return str(obj)

然后在urls.py文件中:

sitemaps = {
            'global': MySitemap,
            }

...

urlpatterns = patterns('',
...
url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),

但是,我生成的sitemap.xml前面却多了http://http://,比如:

...
<url><loc>http://http://mywebsite.com/my/url1</loc></url>
...

这个问题是怎么造成的呢?

1 个回答

6

你可能在你的网站对象的域名中加上了 http://,这是来自网站框架的设置(django.contrib.sites)。把它去掉。

这个字段应该只包含实际的域名,不需要加上协议,因为协议本身是可以改变的(比如可以变成 https://)。

撰写回答