ahuggins / laravel-opensearch
快速为您的网站添加使用 OpenSearch 在 Chrome 地址栏中进行搜索的能力。就像您输入地址后按空格键,Chrome 会搜索该网站一样,这个包添加了这个功能。
This package is auto-updated.
Last update: 2024-09-10 19:27:07 UTC
README
当您访问 Amazon.com 或 Google.com 时,您输入域名,按空格键,整个地址栏就会变成“搜索框”?如果您想在您的网站上添加这个功能,那么这个包会让它变得非常简单。
注意:在您将此包加载到您的网站上之前,应在
config/app.php
文件中设置您网站的“名称”。Google(以及其他搜索引擎)对您网站上的 opensearch.xml 文件(此包提供的内容之一)缓存得非常积极,因此更新可能需要一段时间。
没有 OpenSearch
WITH OpenSearch
注意:虽然“WITH” OpenSearch Gif 显示了一个“Whoops”,这仅仅是因为我的测试/示例网站没有“搜索”路由。请注意,url 也路由到了“可定制”的搜索路由。
安装
这个包是在 5.5 版本发布后制作的,这就是它构建的版本,所以我可以说它支持 Laravel 5.5+,但实际上它可能适用于 Laravel 5+。
composer require ahuggins/laravel-opensearch
注意,由于这个包是用 Laravel 5.5 制作的,它支持包自动发现,因此您不需要手动将 ServiceProvider 或 Alias 添加到
config/app.php
中。但以防万一,为了复制/粘贴
ServiceProvider
AHuggins\OpenSearch\Providers\OpenSearchServiceProvider::class,
Alias
'OpenSearch' => AHuggins\OpenSearch\Facades\OpenSearchFacade::class,
剩余设置
有一个您可能想定制的配置文件,要发布它,您需要执行
php artisan vendor:publish
这将在您的应用 config
文件夹中放置一个 opensearch.php
文件。
最后一部分
为了使此功能正常工作,您需要将以下内容添加到您的应用布局或基本 blade 文件的 <head>
部分
{!! OpenSearch::load() !!}
注意
此包不会向您的网站提供“搜索”功能。它只是使您能够添加 Chrome 从地址栏进行搜索的功能。您将不得不将路由连接到您的搜索路由/视图。
您可以使用提供的配置进行自定义(前提是您已发布它,见上文)。
// The config options
'search_route' => 'search',
'query_param' => 'q',
'description' => [
'before_name' => 'Search',
'after_name' => '',
],
'title' => 'Search Site',
'xml_route' => 'opensearch.xml',
'favicon' => [
'type' => 'image/x-icon',
'path' => 'favicon.ico',
]
search_route
这是您的实际应用的搜索路由,例如 yoururl.com/{yoursearchroute}
。
query_param
如果您使用除 q
之外的参数作为查询参数,请在此指定。
description
这用于“装饰”搜索框中的“网站名称”。
before_name
前置名称将放在网站名称之前。
注意:在您将此包加载到您的网站上之前,应在
config/app.php
文件中设置您网站的“名称”。Google(以及其他搜索引擎)对您网站上的 opensearch.xml 文件(此包提供的内容之一)缓存得非常积极,因此更新可能需要一段时间。
after_name
与前置名称类似,但这个名称将放在网站名称之后。
title
标题仅在 opensearch.xml
文件的链接输出中使用。您可以在头部部分(或您输出 ::load()
调用的任何地方)看到它。对于大多数网站,“搜索网站”应该是一个很好的默认值...但如果您想覆盖它,可以在 config/opensearch.xml
文件中使用此选项。
xml_route
如果您因某些原因需要从默认的 opensearch.xml
进行更改,请在此处进行。这基本上是搜索引擎为这个定义所寻找的内容。
favicon
请在下面指定favicon的路径和 type
。通常,type
将会是 image/x-icon
或 image/png
。只需确保您有适合相应类型favicon的正确类型即可。
目前此包只支持单个favicon,但此包也接受Pull Requests!(暗示暗示)