關於 Spartacus 的 sitemap.xml 問題

注销發表於2022-05-19

SAP Commerce 中,可以使用 cronJob 生成 XML 站點地圖。 這個 cronJob 將收集當前站點中的所有頁面,並構建一個帶有每個頁面的 url 的媒體檔案。 將根據頁面型別建立單獨的檔案。 稍後當使用舊的加速器店面(使用 Web 模組配置 /yacceleratorstorefront 擴充套件)並訪問 /yacceleratorstorefront/sitemap.xml url 時,將顯示站點地圖索引,其中包含對所有部分站點地圖的引用。

站點地圖允許網站管理員通知搜尋引擎他們網站上可用於索引的頁面。 Accelerator 支援不同頁面型別(例如產品頁面和類別頁面)以及不同語言和貨幣的站點地圖。

在最簡單的形式中,站點地圖是一個 XML 檔案,其中列出了站點的 URL,以及有關每個 URL 的其他後設資料,以便搜尋引擎可以更智慧地索引站點。 後設資料的示例包括有關 URL 上次更新時間、更改頻率、相對於站點中其他 URL 的重要性等資訊。

站點地圖透過以下 URL 在 Accelerator 中公開:

http://electronics.local:9001...

下面是一個 sitemap index 的一個例子:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <sitemap>
            <loc>http://electronics.local:9001/medias/Homepage-ja-JPY-3422021852412885281.xml?context=bWFzdGVyfHJvb3R8MzQwfHRleHQveG1sfGgyNi9oNTUvODc5NzA3NjQyMjY4Ni54bWx8ODhkMDBhODYyMGU5OGY4YTRlMGVjNTE1MmVkMTgxOWYxNDBkOTU0MjU0MjRlZmZhODA5ZWNkY2Q2YzJlZmFhYg</loc>
        </sitemap>
    
    </sitemapindex>

Accelerator 裡負責生成 sitemap 的程式碼:SiteMapController.java

客戶通常需要一種機制來自動發現所有 Spartacus 頁面 (URL),以便生成站點地圖,或在 SSR/SSG 中預渲染它們。這是一項跨元件和模組的任務,需要整合許多資訊和機制:

  • 收集 backoffice 定義的所有 categories
  • 收集 backoffice 定義的所有 products
  • 收集 Spartacus / 客戶應用程式中定義的所有靜態 Angular 路由
  • 使用 Spartacus 路由配置來塑造特定的 PDP、PLP 和內容頁面的 URL
  • 更多

對於某些頁面,您可能希望生成規範的 URL 替代方案。 (注意:Spartacus 具有規範 URL 的功能,用於將連結放置在當前文件的 <head> 中;也許它可以以某種方式適應生成站點地圖/ URL 發現......)

對於產品列表,收集想要索引的 URL 中的所有構面組合或搜尋查詢

對於內容頁面,瞭解所有 Spartacus CMS 驅動的子路由。例如,在後臺有一個帶有頁面標籤 /store-finder 的單個內容頁面,但在 Spartacus 中,該單個內容頁面頂部的 CMS 驅動的子路由是:/store-finder(父)、/store-finder/view-全部, /store-finder/country/:country, /store-finder/country/:country/region/:region, ... .對於特定功能,例如 store-finder,還需要收集所有可能且有效的動態 URL 引數組合(例如 :country、:region)。

由於複雜性(涉及的各種機制)和規模(大量產品、類別等),發現所有 Spartacus 頁面的過程需要自動化。為了使站點地圖保持最新狀態,客戶應定期執行該流程,以瞭解內容經理新增新頁面、產品、類別和方面的頻率。

相關文章