Django 站点地图 - 在 URL 前加双 http://

goz*_*lli 1 python sitemap django

在 Django 1.4.12 中,我有一个 Sitemap 类:

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

    def location(self, obj):
        return str(obj)
Run Code Online (Sandbox Code Playgroud)

并在 urls.py

sitemaps = {
            'global': MySitemap,
            }

...

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

但是,我生成的sitemap.xmlhttp://http://前面已经有了,比如:

...
<url><loc>http://http://mywebsite.com/my/url1</loc></url>
...
Run Code Online (Sandbox Code Playgroud)

是什么导致了这个问题?

knb*_*nbk 6

您可能已经将站点框架 ( )http://中的Site对象包含在域名中django.contrib.sites。去掉它。

此字段应仅包含实际域名,而不是协议,因为协议本身可以更改(例如更改为https://)。