問題癥狀
開發人員在完成基本接入後開啟 H5 應用失敗,容器頁面顯示錯誤資訊“NoSuchKey. The specified key does not exist…”,如下圖:
錯誤範例:
<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 伺服器返回該錯誤。
問題排查步驟
根據原因分析,排查方向如下:
用戶端開啟的 H5 App 的頁面地址是否正確。
離線包中相關的資源是否打包正確。
確認 H5 App 開啟的頁面地址是否正確
這裡有三類情況:
主動開啟 H5 App 時,傳入的 URL 參數是否正確。


根據 H5 App 頁面跳轉的邏輯確認所開啟的頁面地址是否正確,包括
pushWindow()、location.href等跳轉形式的目標 URL 設定是否正確。在上傳離線包的時候,開發人員務必要配置好 H5 App 的預設入口 URL。如果沒有配置該 URL 或配置的入口 URL 不正確,容器直接開啟 H5 App 時無法提供正確的頁面地址,從而導致該問題產生。

離線包中相關的資源是否打包正確
控制台下載
.amr檔案,修改尾碼名為.zip後解壓,解壓檔案夾中的.tar檔案,即可看到離線包中的資源檔。
然後確認要開啟的頁面資源檔是否包含在這個檔案夾內。確認當前 App 的環境配置和目前離線包的環境是否一致:
查看 App 工程中的
meta.config中的 App ID:
查看目標 H5 App 離線包所在控制台上的 App ID。
