0

我正在尝试在 Django 上添加 opensearch,但我既无法让 Firefox 获取正确的网站图标,也无法查询和显示建议。我也在 Chrome 上尝试过,但我认为我不能将 localhost 添加为搜索引擎。

这是我的 opensearch.xml 文件,Firefox 可以正确读取该文件,因为我可以将它添加到我的搜索引擎中。请注意,它当前显示 localhost 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 中将我的网站添加为搜索引擎时,以下是提出的请求:

[2014 年 4 月 29 日 18:18:19]“GET /favicon.ico/static/ico/favicon.ico/HTTP/1.1”200 49266

[2014 年 4 月 29 日 18:18:21]“GET /opensearch.xml HTTP/1.1”200 335

[29/Apr/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设置处于活动状态,并且我没有为 favicon 定义 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 回答