页面未找到:http://127.0.0.1:8000 /sitemap.xml /

时间:2018-01-07 12:55:15

标签: django sitemap

以下是为我的某个应用博客'创建站点地图的代码。在我的网站:(使用Django 2.0)

settings.py

INSTALLED_APPS += [
'django.contrib.sites',
'django.contrib.sitemaps',
] 
TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

urls.py

from django.urls import include, path
from django.contrib.sitemaps.views import sitemap
from blog.sitemaps import PostSiteMap

sitemaps = {'posts': PostSiteMap}

urlpatterns += [
path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, 
name='django.contrib.sitemaps.views.sitemap')
]

sitempas.py(在'博客' app目录下)

from django.contrib.sitemaps import Sitemap
from .models import Post


class PostSiteMap(Sitemap):
    changefreq = 'weekly'
    priority = 0.5

def items(self):
    return Post.published.all()

def lastmod(self, obj):
    return obj.publish

未显示sitemap.xml:http://127.0.0.1:8000/sitemap.xml/ enter image description here

enter image description here

有一个与我输入的网址匹配的网址(第八个)。为什么它说不匹配'?

3 个答案:

答案 0 :(得分:3)

您的代码很好,您的环境是错误(也许您使用的是默认的Django网站,即www.example.com)。将其更改为本地环境(典型的127.0.0.1:8000)。

要在Django中执行此操作,您需要执行以下操作:

  1. 检查您是否在命令提示符下运行本地服务器,如果不是,请键入python manage.py runserver
  2. 转到http://127.0.0.1:8000/admin/sites/site/
  3. 将默认网站(通常是Django中的默认网址为example.com)更改为127.0.0.1:8000。这需要在域和显示名称中完成(当您不在生产环境中时)。
  4. 在浏览器中的本地网页中按F5
  5. 转到您的站点地图页面(http://127.0.0.1:8000/sitemap.xml
  6. 瞧!有你的站点地图。

答案 1 :(得分:1)

像这样编写完整的/sitemap.xml并尝试 输入此网址并加载页面 http://127.0.0.1:8000/sitemap.xml/

答案 2 :(得分:1)

错误是

  

网站匹配查询不存在

这意味着您必须设置和配置Sites framework

要启用网站框架,请按以下步骤操作:

  1. 添加' django.contrib.sites'到您的INSTALLED_APPS设置。
  2. 定义SITE_ID设置:

    SITE_ID = 1

  3. 运行迁移。

  4. 有关详细信息,请查看documentation