2

私は自分のブログ(webapp2アプリケーション-Jinja2テンプレート)にRSSフィードを追加しようとしていますが、これは私が持っているものです:

class XMLHandler(Handler):
    def get(self):
        posts = db.GqlQuery("SELECT * FROM Post WHERE is_draft = FALSE ORDER BY created DESC")
        self.render("xmltemplate.xml", posts=posts, mimetype='application/xml')

xmltemplate.xmlは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <channel>
        <title>Blag</title>
        <link>http://www.blagonudacity.appspot.com/</link>
        <description>Yet Another Blag</description>
        {%for post in posts %}
        <entry>
            <title>{{post.subject}}></title>
            <link href="http://www.blagonudacity.appspot.com/post/{{ post.key().id()}}" rel="alternate" />
            <updated>{{post.created}}</updated>
            <author><name>Prakhar Srivastav</name></author>
            <summary type="html"> {{ post.content }} </summary>
        </entry>
        {%endfor%}
    </channel>
</feed>

関連するページに移行したときにブラウザに表示される/feeds/all.atom.xml のは、マークアップのあるhtmlページだけです。XMLページがブラウザでどのように見えるかとは異なります。私はここで何が間違っているのですか?これがデモです

4

1 に答える 1

1

ページがコンテンツタイプtext/htmlで配信されていることを確認しました。これは、1つの問題である可能性があります。これを、text / xmlに設定することをお勧めします(詳細については、こちらをご覧ください) 。

また、これがどのように表示されるかはブラウザに大きく依存します。あなたが提供するリンクがWebページのように見えるchrome(私のように)を使用していると思います。Firefoxで開くと、「ライブブックマーク」スタイルのページが表示されます。ただし、エントリは表示されません。これがマークアップの問題なのか、FirefoxとAtomフィードの問題なのかはわかりません。

xmlファイル自体は問題ないようです(w3バリデーターでチェック)。

更新:わかりました。AtomXMLに問題があるようです(前述のように有効なxmlです)が、有効なAtomデータではないようです(フィードバリデーターによると)。Firefoxでブックマークしようとしましたが、エントリが表示されません(上記のプレビューのように)。だから私はあなたがアトムフィードを見てみるべきだと思います例えばこれこれは役立つかもしれません。

よくわかりませんが、XMLを見ると、AtomとRssが少し混同されている可能性があります。

于 2012-05-05T08:26:38.127 に答える