0

Django に opensearch を追加しようとしていますが、Firefox に正しいファビコンを取得させることも、クエリを実行して提案を表示させることもできません。Chrome でも試してみましたが、検索エンジンとして localhost を追加できるとは思いません。

私の opensearch.xml ファイルは、検索エンジンに追加できるため、Firefox で正しく読み取られます。現在、デバッグ目的でローカルホストの URL が表示されていることに注意してください。

<?xml version="1.0" encoding="UTF-8" ?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
    <ShortName>My website</ShortName>
    <Description>My description</Description>
    <Image width="16" height="16" type="image/x-icon">http://localhost:8000{{ STATIC_URL }}ico/favicon.ico</Image>
    <Url type="text/html" method="get" template="http://localhost:8000/articles/?q={searchTerms}" />
    <Url type="application/x-suggestions+json" method="get" template="http://localhost:8000/api/v1/articles/?q={searchTerms}"/>
    <InputEncoding>UTF-8</InputEncoding>
</OpenSearchDescription>

ファビコンの問題

自分のサイトを Firefox の検索エンジンとして追加すると、次のようなリクエストが行われます。

[29/4/2014 18:18:19] "GET /favicon.ico/static/ico/favicon.ico/ HTTP/1.1" 200 49266

[2014/04/29 18:18:21] "GET /opensearch.xml HTTP/1.1" 200 335

[29/4/2014 18:18:21] "GET /favicon.ico/static/ico/favicon.ico/ HTTP/1.1" 200 49267

/favicon.ico/static/ico/favicon.ico/画像が に設定されている場合、Firefox はどのような理由で取得しようとし/static/ico/favicon.ico/ますか? /static/ico/favicon.ico/それは私たちがウェブサイトで使用しているものであり、(ローカルでもライブでも)うまく機能するため、有効であることはわかっています。

提案

opensearch で受け入れられる JSON 形式は何ですか? RSS および ATOM 形式は見つかりましたが、JSON 形式は見つかりませんでした。

ご協力いただきありがとうございます。

4

1 に答える 1

0

ファビコンの問題

問題は、APPEND SLASH設定をアクティブにしていて、ファビコンの URL を定義していないことです。何らかの理由で、サーバーに何かを要求する前であっても、Firefox は /favicon.ico/static/ico/favicon.ico にフェッチします。

ファビコンの解決策は、APPEND SLASH が有効になっている場合、次を main に追加することurl.pyです。

url(r'^favicon\.ico/$', RedirectView.as_view(url=settings.STATIC_URL + 'ico/favicon.ico'), name='favicon'),

の最後のスラッシュico非常に重要です。これがないと、ブラウザはメイン ページにリダイレクトされます。

JSON 提案形式

ドキュメントへのリンク: http://www.opensearch.org/Specifications/OpenSearch/Extensions/Suggestions

["Search term entered by user", ["Suggestion 1", "Suggestion 2", ... ]]

于 2014-04-30T10:51:26.783 に答える