修复 SDK 同源资源加载
将生产环境 SDK 接口、H5 基座和模型资源配置为同源访问,避免 HTTPS 页面请求 HTTP 后端或 MinIO 资源时触发混合内容拦截。 同步更新环境变量模板,并移除导览页中废弃的 3D 视角切换入口。
This commit is contained in:
12
.env.example
12
.env.example
@@ -1,3 +1,15 @@
|
||||
# 腾讯地图 API Key
|
||||
# 请到 https://lbs.qq.com/index.html 申请
|
||||
VITE_TENCENT_MAP_KEY=your_tencent_map_key_here
|
||||
|
||||
# 数据源模式:sdk / mock
|
||||
VITE_DATA_SOURCE_MODE=sdk
|
||||
VITE_API_BASE_URL=/app-api
|
||||
VITE_SGS_SDK_TIMEOUT_MS=15000
|
||||
|
||||
# SGS SDK 配置(生产部署使用同源路径,避免 HTTPS 页面请求 HTTP 后端被浏览器拦截)
|
||||
VITE_SGS_API_BASE_URL=/app-api
|
||||
VITE_SGS_MAP_ID=1
|
||||
VITE_SGS_SDK_SCRIPT_URL=/static/sgs-map-sdk/index.global.js
|
||||
VITE_SGS_H5_ENGINE_URL=/h5-sdk
|
||||
VITE_SGS_SDK_ORIGIN=https://guide.whaoyue.com
|
||||
|
||||
@@ -41,8 +41,6 @@
|
||||
zoom-controls-top="calc(100vh - 284px)"
|
||||
show-more-control
|
||||
more-control-bottom="54px"
|
||||
:tools="guide3DTools"
|
||||
:camera-view="guideCameraView"
|
||||
:route-preview="activeRoutePreview"
|
||||
:show-route="Boolean(activeRoutePreview)"
|
||||
:auto-switch-threshold-low="0.58"
|
||||
@@ -54,7 +52,6 @@
|
||||
@indoor-view-change="handleIndoorViewChange"
|
||||
@poi-click="handleGuidePoiClick"
|
||||
@selection-clear="handleGuideSelectionClear"
|
||||
@tool-click="handleGuideToolClick"
|
||||
@more-click="handleGuideMoreClick"
|
||||
@auto-switch="handleAutoSwitch"
|
||||
@map-tap="handleMapTapForOutdoorNav"
|
||||
@@ -345,9 +342,6 @@ const normalizeGuideFloorId = (labelOrId: string) => guideUseCase.normalizeFloor
|
||||
const indoorLayerMode = computed<LayerDisplayMode>(() => (
|
||||
indoorView.value === 'multi' ? 'multi' : 'single'
|
||||
))
|
||||
const guide3DTools = computed(() => {
|
||||
return is3DMode.value ? ['视角'] : []
|
||||
})
|
||||
|
||||
const routePlanSummary = computed(() => {
|
||||
if (activeRoutePreview.value) {
|
||||
@@ -708,16 +702,6 @@ const handleSelectedPoiRelated = () => {
|
||||
})
|
||||
}
|
||||
|
||||
const guideCameraView = ref<'reset' | 'top' | 'oblique'>('reset')
|
||||
|
||||
const handleGuideToolClick = (_tool: string) => {
|
||||
// 视角循环切换:重置 -> 俯视 -> 斜视 -> 重置
|
||||
const viewOrder: Array<'reset' | 'top' | 'oblique'> = ['reset', 'top', 'oblique']
|
||||
const currentIndex = viewOrder.indexOf(guideCameraView.value)
|
||||
const nextIndex = (currentIndex + 1) % viewOrder.length
|
||||
guideCameraView.value = viewOrder[nextIndex]
|
||||
}
|
||||
|
||||
const loadRouteTargets = async (keyword = '') => {
|
||||
routeTargetsLoading.value = true
|
||||
routeTargetsError.value = ''
|
||||
|
||||
@@ -54,7 +54,24 @@ const trimTrailingSlash = (value: string) => value.replace(/\/+$/, '')
|
||||
const resolveSgsAssetUrl = (url?: string | null) => {
|
||||
const normalizedUrl = url?.trim()
|
||||
if (!normalizedUrl) return ''
|
||||
if (/^https?:\/\//i.test(normalizedUrl)) return normalizedUrl
|
||||
|
||||
if (/^https?:\/\//i.test(normalizedUrl)) {
|
||||
try {
|
||||
const assetUrl = new URL(normalizedUrl)
|
||||
if (
|
||||
assetUrl.hostname === '1.92.206.90'
|
||||
&& assetUrl.port === '9000'
|
||||
&& assetUrl.pathname.startsWith('/museum-assets/')
|
||||
) {
|
||||
return `${assetUrl.pathname}${assetUrl.search}${assetUrl.hash}`
|
||||
}
|
||||
} catch {
|
||||
return normalizedUrl
|
||||
}
|
||||
|
||||
return normalizedUrl
|
||||
}
|
||||
|
||||
if (!normalizedUrl.startsWith('/')) return normalizedUrl
|
||||
|
||||
const baseUrl = trimTrailingSlash(dataSourceConfig.sgsApiBaseUrl || dataSourceConfig.apiBaseUrl || '')
|
||||
|
||||
Reference in New Issue
Block a user