从云存储访问公开SCORM文件时出错,求原因分析
SCORM文件访问错误排查方案
问题背景
已将云存储中的SCORM文件全部设为公开,尝试访问托管文件:https://host-name/training-thumbnails/000001/Objects_Simple_Secure_Scale-out_For_Unstructured_Data_439/course-b021871fbcfc62eb98f72f970bca482b.html
出现找不到SCORM API对象的错误,使用原生scormApi渲染SCORM文件。
可能的原因及解决方法
SCORM API未正确全局挂载
原生SCORM依赖window.API或window.parent.API对象存在,若你自行实现scormApi,需确保在SCORM内容加载前,将API对象挂载到顶层window或SCORM内容可访问的上下文环境中——比如用iframe承载时,要保证API能被iframe内的页面获取到。跨域访问限制
若SCORM内容页面与承载它的父页面(或初始化API的页面)不同域,浏览器同源策略会阻止API对象的访问:- 核对云存储域名与加载SCORM的页面域名是否一致
- 配置云存储的CORS规则,允许SCORM页面的跨域请求
- 若用iframe承载,需设置
allow-same-origin属性
SCORM包内部路径不匹配
解压SCORM包,检查imsmanifest.xml中<resource>标签的href属性是否与当前访问的HTML文件路径一致。云存储中的文件目录结构必须和打包时完全一致,否则会导致依赖文件加载失败,影响API初始化。云存储MIME类型配置错误
部分云存储会错误识别静态文件类型,导致SCORM依赖的JS、XML文件无法正常加载:- 确认JS文件的Content-Type为
application/javascript - 确认XML文件的Content-Type为
application/xml或text/xml
- 确认JS文件的Content-Type为
内容的提问来源于stack exchange,提问作者justAnAnotherCoder
相关产品推荐
相关产品推荐

