1. 提出问题

1.1 网页无法渲染

  • 页面一直提示“加载中…”
    在这里插入图片描述

1.2 调试寻找原因

  • F12键,查看出错原因
    在这里插入图片描述
  • 报错原因主要有两点:一是 ERR_NAME_NOT_RESOLVED 表示无法解析 CDN 域名,说明引用的外部 JS 库链接失效或网络不通;二是直接使用 file:// 协议打开 HTML 会触发浏览器跨域安全策略(CORS),禁止加载模块脚本。解决方法是使用 VS Code 的 Live Server 插件或 Python 开启本地 HTTP 服务器运行项目,并检查更换可用的 CDN 链接。

2. 解决问题

2.1 更换可用的CDN链接

  • 打开a.html源码文件
    在这里插入图片描述

    <script type="importmap">
    {
      "imports": {
        "three": "https://unpkg.com/three@0.160.0/build/three.module.js",
        "three/addons/": "https://unpkg.com/three@0.160.0/examples/jsm/"
      }
    }
    </script>
    
  • 修改CDN源
    在这里插入图片描述

    <script type="importmap">
    {
      "imports": {
        "three": "https://esm.sh/three@0.160.0",
        "three/addons/": "https://esm.sh/three@0.160.0/examples/jsm/"
      }
    }
    </script>
    

2.2 浏览网页验证效果

  • 刷新a.html网页,可以看到网页正常显示
    在这里插入图片描述
  • 检验按钮是否有效
    在这里插入图片描述
  • 验证了每个按钮都能正常工作,可以看到页面不断渲染不同的效果图。

3. 实操小结

  • 本次实践成功解决了Three.js项目因CDN失效导致的渲染失败问题。通过分析浏览器控制台报错信息,精准定位了“ERR_NAME_NOT_RESOLVED”这一核心故障,即原有unpkg CDN源无法访问。针对此问题,采取了更换为esm.sh稳定源的策略,并修正了Import Map配置。同时,规避了直接双击HTML文件产生的跨域安全限制,借助本地服务器环境运行项目。最终,页面不仅实现了正常渲染,且交互功能验证无误,确保了Web 3D应用的流畅展示。
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐