1

私のDjangoサイトの自動サイトマップは、URLにwwwを含めるか、除外するかによって変動します(私は常にそれを使用することを目指しています)。これは、グーグルが私のページを適切に索引付けしないという影響があるので、この問題の原因を絞り込もうとしています。

私は設定PREPEND_WWW = Trueしましたが、サイトフレームワークのサイトレコードはwwwを含むように設定されています。たとえば、ではなくに設定さwww.example.comれていexample.comます。memcachedを使用していますが、ページは48時間後にキャッシュから期限切れになるはずなので、それが問題の原因になるとは思わなかったでしょうか。

問題が実際に発生しているのはhttp://www.livingspaceltd.co.uk/sitemap.xmlで確認できます(ページを数回更新してください)。

私のサイトマップの設定はかなり乱雑なので、それが問題であるかどうかは疑わしいですが、それが明らかな場合に備えて、ここにコードがありません。

***urls.py***

sitemaps = {
    'subpages': Subpages_Sitemap,
    'standalone_pages': Standalone_Sitemap,
    'categories': Categories_Sitemap,
}

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

***sitemaps.py***

# -*- coding: utf-8 -*- 
from django_ls.livingspace.models import Page, Category, Standalone_Page, Subpage
from django.contrib.sitemaps import Sitemap

class Subpages_Sitemap(Sitemap):
    changefreq = "monthly"
    priority = 0.4
    def items(self):
        return Subpage.objects.filter(restricted_to__isnull=True)

class Standalone_Sitemap(Sitemap):
    changefreq = "weekly"
    priority = 1
    def items(self):
        return Standalone_Page.objects.all()

class Categories_Sitemap(Sitemap):
    changefreq = "weekly"
    priority = 0.7
    def items(self):
        return Category.objects.all()
4

3 に答える 3

0

まあ、結局のところ、それはキャッシュエラーだったようです-1週間以上前に変更を加えたので、whtが間違っていたのかよくわかりません。そのため、間違いなく正しく動作せず、いくつか試してみる必要がありました。それを再起動するためのさまざまなメソッド。したがって、これにはさらに詳細な調査が必要ですが、現在は機能しています。

于 2010-06-01T11:37:21.547 に答える
0

それは私が見た中で最も奇妙な問題の1つかもしれません。ただし、DjangoがサイトマップでURLを作成する方法は非常に簡単です。データベースから現在のSiteオブジェクトを取得し、「domain」フィールドの値をページの相対位置に追加するだけです。

current_site = Site.objects.get_current()
...
loc = "http://%s%s" % (current_site.domain, self.__get('location', item))

(ソース)

データベースレベルで何か変なことをしていないと思いますか?ミラーリングされたデータベースが複数あるが、それらが一貫していない場合は、同様の効果が得られる可能性があります。を表示するだけのテストビューを設定してみてくださいSite.objects.get_current()。おそらく同様に変動するでしょう。

サードパーティのキャッシュアプ​​リ(Johnny Cacheなど)を使用している場合は、オフにしてみてください。

また、2つのSiteオブジェクトがないことを確認してください。1つはwwwあり、もう1つはwwwなしです(同様の効果は得られませんが、複数のサーバーインスタンスがあり、異なるSITE_ID用に構成されています...多分?)

于 2010-05-28T13:12:44.863 に答える
0

PREPEND_WWW=trueのsettings.pyはキャッシュ変数設定の上に表示される必要があります。これで私の問題は修正されましたが、これはあなたの問題とまったく同じです。グーグルウェブマスターツールでサイトマップを送信すると、これと同じ問題が発生しました。

于 2010-10-19T04:32:17.690 に答える