Django 站点地图:XML 声明只允许在文档的开头
Django sitemaps: XML declaration allowed only at the start of the document
我一直在为博客网站在 Django-2.2 上实现站点地图。
我遵循的代码结构是-
Sitemaps.py
from django.contrib.sitemaps import Sitemap
from .models import Post
class PostSitemap(Sitemap):
changefreq = "never"
priority = 0.9
def items(self):
return Post.objects.all()
urls.py
from django.contrib.sitemaps.views import sitemap
from .sitemaps import PostSitemap
sitemaps = {
'posts': PostSitemap
}
urlpatterns = [
url(r'^sitemap\.xml/$', sitemap, {'sitemaps' : sitemaps } , name='sitemap'),
]
settings.py
INSTALLED_APPS = [
...
'django.contrib.sites',
'django.contrib.sitemaps',
]
SITE_ID = 1
我想差不多就是这样,因为我引用了很多链接。
但是当我打开 127.0.0.1:8000/sitemap.xml
它给了我以下错误-
This page contains the following errors:
error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
就是这样,服务器日志上没有任何内容。
请,如果有人可以帮助我。
提前致谢
您的 xml 文件开头有新行。这是您遇到此问题的主要原因。
请根据文档更改您的 urls.py 文件。
https://docs.djangoproject.com/en/2.2/ref/contrib/sitemaps/
您的 url 应该如下所示。
from django.contrib.sitemaps.views import sitemap
path('sitemap.xml', sitemap, {'sitemaps': sitemaps},
name='django.contrib.sitemaps.views.sitemap')
我一直在为博客网站在 Django-2.2 上实现站点地图。
我遵循的代码结构是-
Sitemaps.py
from django.contrib.sitemaps import Sitemap
from .models import Post
class PostSitemap(Sitemap):
changefreq = "never"
priority = 0.9
def items(self):
return Post.objects.all()
urls.py
from django.contrib.sitemaps.views import sitemap
from .sitemaps import PostSitemap
sitemaps = {
'posts': PostSitemap
}
urlpatterns = [
url(r'^sitemap\.xml/$', sitemap, {'sitemaps' : sitemaps } , name='sitemap'),
]
settings.py
INSTALLED_APPS = [
...
'django.contrib.sites',
'django.contrib.sitemaps',
]
SITE_ID = 1
我想差不多就是这样,因为我引用了很多链接。
但是当我打开 127.0.0.1:8000/sitemap.xml
它给了我以下错误-
This page contains the following errors:
error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
就是这样,服务器日志上没有任何内容。 请,如果有人可以帮助我。 提前致谢
您的 xml 文件开头有新行。这是您遇到此问题的主要原因。
请根据文档更改您的 urls.py 文件。
https://docs.djangoproject.com/en/2.2/ref/contrib/sitemaps/
您的 url 应该如下所示。
from django.contrib.sitemaps.views import sitemap
path('sitemap.xml', sitemap, {'sitemaps': sitemaps},
name='django.contrib.sitemaps.views.sitemap')