Godot导出游戏到网页,本地运行和Netlify部署实践
2024/01/08 4 mins read See this issue
# 游戏
Back
To Top
今天尝试把自己跟着写的游戏 demo 打包到web平台,记录一下过程 。
# 打包web
首先是打开导出对话框 项目 -> 导出… -> 添加… -> Web 这时候会提示缺少模板,可以在线下载,也可以从文件中打开,网络不好的话就只能官网下载
# 本地运行
导出准备做好后就可以直接选择导出路径后导出了,导出后直接打开会直接报错,必须要在服务器环境中打开
Error The following features required to run Godot projects on the Web are missing: Cross Origin Isolation - Check web server configuration (send correct headers) SharedArrayBuffer - Check web server configuration (send correct headers)
而且在服务器端必须配置一些跨域隔离配置,需要本地启动一个web服务器来运行,然后google了一下,使用python来实现本地运行,代码很少贴在下面
#!/usr/bin/env python3
from http import server # Python 3
class MyHTTPRequestHandler(server.SimpleHTTPRequestHandler):
def end_headers(self):
self.send_my_headers()
server.SimpleHTTPRequestHandler.end_headers(self)
def send_my_headers(self):
self.send_header("Access-Control-Allow-Origin", "*")
self.send_header("Cross-Origin-Embedder-Policy", "require-corp")
self.send_header("Cross-Origin-Opener-Policy", "same-origin")
if __name__ == '__main__':
server.test(HandlerClass=MyHTTPRequestHandler)
然后将脚本放到游戏文件夹下运行,打开localhost:8000
python server.py
# 部署到netlify
已netlify为例,将我们的web游戏部署到netlify站点
**同样,我们也会服务器header的配置问题,通过查看文档得知需要在上传的文件夹中添加一个_headers
文件,内容添加如下
/*
Access-Control-Allow-Origin: *
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
这样问题就解决了。线上部署正常运行https://godot-fox.netlify.app/