配置自適應表單快取

快取是縮短資料存取時間、減少延遲並改善輸入/輸出(I/O)速度的機制。 最適化表單快取只儲存最適化表單的HTML內容和JSON結構,而不儲存任何預先填入的資料。 它有助於縮短在用戶端上轉換最適化表單所需的時間。 它專為最適化表單而設計。

在作者處配置自適應表單快取和發佈例項

  1. 轉至AEMhttps://[server]:[port]/system/console/configMgr的Web控制台配置管理器。

  2. 按一下​自適應表單和互動式通信Web通道配置​以編輯其配置值。

  3. 在編輯配置值對話框中,在​最適化Forms​欄位中指定Forms伺服器實例可快取的表單或文檔的最大數量。 預設值為 100。

    注意

    要禁用快取,請將「Number of AdaptiveForms」(自適應性資料)欄位中的值設定為​0。 當禁用或更改快取配置時,將重置快取,並從快取中刪除所有表單和文檔。

    最適化表單HTML快取的設定對話方塊

  4. 按一下​保存​保存配置。

您的環境已配置為使用快取自適應表單和相關資產。

(可選)在Dispatcher配置自適應表單快取

您也可以在Dispatcher中設定自適應表單快取,以進一步提升效能。

先決條件

在調度程式上快取自適應表單的注意事項

  • 使用最適化表單快取時,請使AEM用Dispatcher快取最適化表單的用戶端程式庫(CSS和JavaScript)。
  • 在開發自訂元件時,在用於開發的伺服器上,請停用最適化表單快取。
  • 不會快取無副檔名的URL。 例如,會快取模式為pattern/content/forms/[folder-structure]/[form-name].html的URL,並忽略模式為/content/dam/formsanddocument/[folder-name]/<form-name>/jcr:content的URL快取。 因此,請搭配使用URL和擴充功能,以充份運用快取功能。
  • 本地化最適化表單的考量事項:
    • 使用URL格式http://host:port/content/forms/af/<afName>.<locale>.html來請求本地化版本的自適應表單,而非http://host:port/content/forms/af/afName.html?afAcceptLang=<locale>
    • 針對格式化 的URL停用瀏覽器本 http://host:port/content/forms/af/<adaptivefName>.html位。
    • 當您使用URL格式http://host:port/content/forms/af/<adaptivefName>.html,且在配置管理器中禁用了「使用瀏覽器語言環境​」時,將提供自適應表單的非本地化版本。​非本地化語言是開發自適應表單時使用的語言。 不會考慮為瀏覽器設定的地區設定(瀏覽器地區設定),而且會提供最適化表單的非本地化版本。
    • 當您使用URL格式http://host:port/content/forms/af/<adaptivefName>.html,並且在配置管理器中啟用了「使用瀏覽器區域設定」(Use Browser Locale)時,如果可用,則會提供最適化表單的本地化版本。 ​本地化的最適化表單語言是以您瀏覽器所設定的地區(瀏覽器地區)為基礎。 它只能導致[自適應表單]的第一個實例快取。 若要防止問題在實例上發生,請參閱疑難排解

在調度程式中啟用快取

執行下列步驟,以啟用和配置分發程式上的快取自適應表單:

  1. 為您環境的每個發佈實例開啟以下URL,並為您環境的發佈實例啟用刷新代理:
    http://[server]:[port]]/etc/replication/agents.publish/flush.html

  2. 將以下內容添加到dispatcher.any檔案中:

       /invalidate
       {
       /0000
       {
       /glob "*"
       /type "deny"
       }
       /0001
       {
       # Consider all HTML files stale after an activation.
       /glob "*.html"
       /type "allow"
       }
       /0002
       {
       # Exclude htmls present in AF directories
       /glob "/content/forms/**/*.html"
       /type "deny"
       }
    

    當您新增上述項目時:

    • 最適化表單會保留在快取中,直到未發佈更新的表單版本為止。

    • 當發佈自適應表單中引用的較新版本資源時,受影響的自適應表單會自動失效。 引用資源的自動失效有一些例外。 有關例外的解決方法,請參閱疑難排解一節。

  3. 新增下列rules dispatcher.any或自訂規則檔案。它會排除不支援快取的URL。 例如,互動式通訊。

       /0000 {
             /glob "*"
             /type "allow"
       }
       ## Don't cache csrf login tokens
       /0001 {
             /glob "/libs/granite/csrf/token.json"
             /type "deny"
       }
       ## Don't cache IC - print channel
       /0002 {
             /glob "/content/forms/**/channels/print.html"
             /type "deny"
       }
       ## Don't cache IC - web channel
       /0003 {
             /glob "/content/forms/**/channels/web.html"
             /type "deny"
       }
    
  4. 將下列參數新增至忽略URL參數清單:

       /ignoreUrlParams {
       /0001 { /glob "*" /type "deny" }
       # added for AEM forms specific use cases.
       /0003 { /glob "dataRef" /type "allow" }
       }
    

您的環AEM境已配置為快取自適應表單。 它會快取所有類型的調適性表單。 如果您需要在傳送快取頁面之前檢查頁面的使用者存取權限,請參閱快取保護內容

疑難排解

某些包含影像或視頻的自適應表單不會自動從調度器快取中失效

問題

當您透過資產瀏覽器選取影像或視訊並新增至最適化表單,而且這些影像和視訊是在資產編輯器中編輯時,包含這些影像的最適化表單不會自動從分派器快取中失效。

解決方案

發佈影像和視訊後,請明確取消發佈並發佈參照這些資產的最適化表單。

僅快取自適應表單的第一個實例

問題

當最適化表單URL沒有任何本地化資訊,並且在配置管理器中啟用「使用瀏覽器區域設定」(Use Browser Locale)時,就會提供最適化表單的本地化版本,並且只會快取並傳送最適化表單的第一個實例給每個後續使用者。

解決方案

執行下列步驟以解決問題:

  1. 開啟conf.d/httpd-dispatcher.conf或任何其他設定檔,設定為在執行時期載入。

  2. 將下列程式碼新增至您的檔案並儲存。 它是一個范常式式碼,可依您的環境加以修改。

   <VirtualHost *:80>
        # Set log level high during development / debugging and then turn it down to whatever is appropriate
    LogLevel rewrite:trace6
        # Start Rewrite Engine
    RewriteEngine On
        # Handle actual URL convention (just pass through)
        RewriteRule "^/content/forms/af/(.*)[.](.*).html$" "/content/forms/af/$1.$2.html" [PT]
 
        # Handle selector based redirection basded on browser language
        # The Rewrite Cond(ition) is looking for the Accept-Lanague header and if found takes the first two character which most likely will be the desired language selector.
        RewriteCond %{HTTP:Accept-Language} ^(..).*$ [NC]
        RewriteRule "^/content/forms/af/(.*).html$" "/content/forms/af/$1.%1.html" [R]
   </VirtualHost>

本頁內容

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now