恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

如何用 serve.py 本地起服务预览 Godot Web 导出并理解 COOP/COEP 响应头?

  • 首页
  • 资讯中心
  • /
  • 如何用 serve.py 本地起服务预览 Godot Web 导出并理解 COOP/COEP 响应头?

相关资讯

Haystack Ollama 集成指南:本地 LLM 嵌入与 Chat 生成全解析 2026/9/13 13:16:59
MES 产量直连计件工资,车间数据防篡改该怎么做才不背锅 2026/9/14 13:52:15
分期上线血泪复盘:大型数字化项目如何拆分里程碑与设计阶段验收标准 2026/9/14 13:52:43

最新资讯

Java函数式编程实战:从Lambda到Stream的代码重构指南
ESP32蓝牙Beacon测距实战:RSSI分级与VSCode深度调试
二叉树数据结构详解:从基础到遍历与实战应用
Qt C++ 药物研发模拟平台:架构设计、分子渲染与性能优化实战
C语言字符串函数全解析:从strlen到strtok的陷阱与实战
PHP与Go性能实测:框架、并发模型与选型指南

今日推荐

ASP+Access库存管理系统源码部署与IIS配置实战指南
基于SSM框架的毕业季旧物分类处理系统设计与实现
MATLAB FFT频谱仿真:从DFT原理到参数设置与窗函数选择

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

如何用 serve.py 本地起服务预览 Godot Web 导出并理解 COOP/COEP 响应头?

发布时间:2026/9/14 15:46:10
如何用 serve.py 本地起服务预览 Godot Web 导出并理解 COOP/COEP 响应头? 如何用 serve.py 本地起服务预览 Godot Web 导出并理解 COOP/COEP 响应头【免费下载链接】godotGodot Engine – Multi-platform 2D and 3D game engine项目地址: https://gitcode.com/GitHub_Trending/go/godot如果你已经用 Godot 导出了 Web 版项目直接双击导出的.html文件在浏览器里打开往往跑不起来Godot 的 Web 导出依赖 fetch 加载 wasm 等资源且启用线程的构建要求站点是 cross-origin isolated需要 COOP/COEP 响应头。仓库里的 platform/web/serve.py 就是解决这件事的轻量工具它在本机起一个静态文件服务器并在每个响应上自动附带Cross-Origin-Opener-Policy: same-origin、Cross-Origin-Embedder-Policy: require-corp和Access-Control-Allow-Origin: *三个响应头这样你在本地预览导出产物时线程、音频等功能所依赖的 cross-origin isolated 环境就齐了。前置条件已安装 Python 3脚本第一行是#!/usr/bin/env python3只用到标准库不需要额外装包。已完成 Web 导出。serve.py默认的根目录是platform/web/相对路径下的../../bin也就是仓库根目录的bin/——所以把导出的项目文件.html入口页、.wasm、.pck等放到仓库根目录的bin/下或按下一步用--root指定你的导出目录。启动本地服务serve.py接受三个参数见 serve.py 的 argparse 定义参数说明默认值-p, --port监听端口8060-r, --root作为站点根目录提供服务的目录路径相对platform/web/解析../../bin即仓库根的bin/-n, --no-browser不自动打开默认浏览器默认会自动打开浏览器最短主路径导出文件已放在bin/下python3 platform/web/serve.py导出在别处时指定目录例如导出目录是/tmp/my-game-exportpython3 platform/web/serve.py -r /tmp/my-game-export -p 8060不想自动弹浏览器的开发调试场景python3 platform/web/serve.py -n脚本自身会先chdir到它所在的platform/web/目录所以从仓库任意位置运行都可以-r的相对路径一律相对platform/web/计算。启动后输出分两种Opening the served URL in the default browser (use --no-browser or -n to disable this): http://127.0.0.1:8060或加了-n时Serving at: http://127.0.0.1:8060服务使用 dual-stack socket同时接受 IPv4/IPv6见DualStackServer地址绑定为(, port)即监听本机所有网络接口的指定端口浏览器里访问上面打印出的http://127.0.0.1:port地址再进到导出目录里的入口 HTML 文件即可。按 CtrlC 会打印Keyboard interrupt received, stopping server.并关闭服务这是脚本内置的正常退出方式。这三个响应头分别做了什么serve.py里的CORSRequestHandler在每个 HTTP 响应上追加三个头self.send_header(Cross-Origin-Opener-Policy, same-origin) self.send_header(Cross-Origin-Embedder-Policy, require-corp) self.send_header(Access-Control-Allow-Origin, *)Cross-Origin-Opener-Policy: same-originCOOP把页面划进独立的窗口组只有同源的文档共享该组。Cross-Origin-Embedder-Policy: require-corpCOEP要求页面加载的子资源都携带显式的跨源权限声明。两者同时满足页面才会是浏览器意义上的 cross-origin isolated。这是启用线程的 Web 构建的硬性要求EditorExportPlatformWeb.xml 中variant/thread_support的说明指出开启线程需要 a cross-origin isolated websitesetup 可能比较繁琐并且受安全限制例如不能与第三方网站通信关闭线程则不需要它但也更容易出现性能和音频问题。注意Access-Control-Allow-Origin: *是宽松的全开 CORS 头它只适合本地预览场景不要照搬到对外部署的服务器配置。在浏览器里验证响应头打开导出页面的开发者工具切到 Network 面板任选一个已加载的请求查看 Response Headers应能看到上面三个头。这直接对应serve.py发送的 header 名也是 PWA 服务 worker 校验时使用的同一组键。与 PWA 的ensure_cross_origin_isolation_headers选项对照Godot 的 Web 导出还有一个 PWA 选项progressive_web_app/ensure_cross_origin_isolation_headers见 EditorExportPlatformWeb.xml开启后导出的 PWA will make sure that each request has cross-origin isolation headers (COEP/COOP). This can simplify the setup to serve the exported game.它的实现是 misc/dist/html/service-worker.js 中的ensureCrossOriginIsolationHeaders()对每个响应检查Cross-Origin-Embedder-Policy是否为require-corp且Cross-Origin-Opener-Policy是否为same-origin缺哪个补哪个。也就是说本地用serve.py预览时头已经由服务器加好了service worker 里的检查会直接命中已有正确头的分支原样返回部署到不会自己加 COOP/COEP 头的静态托管上时靠 PWA 的 service worker 兜底补齐这是该选项存在的目的。两者的头取值完全一致serve.py相当于在本地提前模拟了这套隔离环境。限制serve.py是纯预览工具不提供构建、签名或部署能力线上部署仍要让自己的服务器或 PWA 选项负责 COOP/COEP。线程构建依赖的 cross-origin isolated 环境本身有安全代价见上文variant/thread_support说明本地预览同样适用这一限制。端口被占用时换一个-p端口即可导出文件不在bin/时务必用-r指定否则浏览器只会看到空的根目录。【免费下载链接】godotGodot Engine – Multi-platform 2D and 3D game engine项目地址: https://gitcode.com/GitHub_Trending/go/godot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号