vue集成cesium后打成的dist包,双击index.html报错CORS.
需求就是不能借助任何形式的http server,要求dist包拷贝到任何电脑,双击index.html就能运行显示cesium的东西。
有这个需求,是因为这个dist会放到unreal engine5里面去和ue5做交互。
但是问题是ue5只能加载双击能直接打开的index.html。
或者有没有懂UE5的大神,这种通过双击不能打开的index.html怎么部署到ue5里面?
可以联系我,我发源码demo给你,一个页面的demo,只要能打包后双击index.html运行看到这个页面就可以。
搜索过网页各种解决方案、问过deepseek。 也按照各种方案试过了,还是报错CORS。
以上方式都试过了,没有作用,依然报错CORS。
下面是简单的demo:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="./cesium/Widgets/widgets.css">
<script src="./cesium/Cesium.js"></script>
<style>
#cesiumContainer {
width: 100%;
height: 100vh;
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
</head>
<body>
<!-- 2. 创建地图容器 -->
<div id="cesiumContainer"></div>
<script>
// 3. 初始化Cesium Viewer
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI2OTcyODJlMS1jNzYyLTQ5MTAtOTgzMC1jNjA4MDRiMmU5MTQiLCJpZCI6MjgzNDQ5LCJpYXQiOjE3NDE3NTA1NDV9.urOnswcih04SarcvtGak7QGvK88h7Pf-mmimOGPqRas'; // 替换为你的Token
const viewer = new Cesium.Viewer('cesiumContainer', {
animation: false, // 关闭动画控件
timeline: false, // 关闭时间线
fullscreenButton: false // 关闭全屏按钮
});
// 4. 添加一个示例模型
const entity = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(116.39, 39.9),
model: {
uri: 'https://cesium.com/downloads/cesiumjs/releases/1.110/Apps/SampleData/models/CesiumAir/Cesium_Air.glb',
minimumPixelSize: 128
}
});
viewer.zoomTo(entity);
</script>
</body>
</html>
回答:你把你的index.html 的内容贴一下呢,关于直接加载静态资源的报错情况,我看你这个js文件应该是存在的,以相对路径引入时是可以找得到的,然后再把网络请求的情况截图看看,目前确实是报错被跨域拦住了