全部產品
Search
文件中心

Mobile Platform as a Service:H5 應用載入失敗:頁面提示:“NoSuchKey. The specified key does not existed...”

更新時間:Jul 13, 2024

問題癥狀

開發人員在完成基本接入後開啟 H5 應用失敗,容器頁面顯示錯誤資訊“NoSuchKey. The specified key does not exist…”,如下圖:image.png

錯誤範例:

<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<RequestId>5F4DFBE4F1AC943937FBCA6D</RequestId>
<HostId>mcube-prod.oss-cn-hangzhou.aliyuncs.com</HostId>
<Key>A5F87CB301605-beimo/20200024/1.0.0.0_all/nebula/fallback/www/index2.html</Key>
</Error>

常見原因

這類問題的直接原因是 mPaaS Nebula 容器直接存取的地址指向了一個 MDS 伺服器上不存在的檔案。從這個原因出發,觸發問題的流程一般為:用戶端試圖訪問一個離線包中不存在的資源,用戶端本地未命中,線上 fallback 地址也未命中,MDS 伺服器返回該錯誤。

問題排查步驟

根據原因分析,排查方向如下:

  1. 用戶端開啟的 H5 App 的頁面地址是否正確。

  2. 離線包中相關的資源是否打包正確。

確認 H5 App 開啟的頁面地址是否正確

這裡有三類情況:

  1. 主動開啟 H5 App 時,傳入的 URL 參數是否正確。image.pngimage.png

  2. 根據 H5 App 頁面跳轉的邏輯確認所開啟的頁面地址是否正確,包括 pushWindow()location.href 等跳轉形式的目標 URL 設定是否正確。

  3. 在上傳離線包的時候,開發人員務必要配置好 H5 App 的預設入口 URL。如果沒有配置該 URL 或配置的入口 URL 不正確,容器直接開啟 H5 App 時無法提供正確的頁面地址,從而導致該問題產生。image.png

離線包中相關的資源是否打包正確

  1. 控制台下載 .amr 檔案,修改尾碼名為 .zip 後解壓,解壓檔案夾中的 .tar 檔案,即可看到離線包中的資源檔。image.pngimage.png然後確認要開啟的頁面資源檔是否包含在這個檔案夾內。

  2. 確認當前 App 的環境配置和目前離線包的環境是否一致:

    • 查看 App 工程中的 meta.config 中的 App ID:image.png

    • 查看目標 H5 App 離線包所在控制台上的 App ID。image.png