fix: use configured backend_url for API base instead of /api path

- Read HF_BACKEND_BASE_URL from localStorage in api client
- Refresh baseURL on each request interceptor
- Persist backend_url from wizard config during app bootstrap
- Persist backend_base_url after setup save
This commit is contained in:
zhi
2026-03-11 10:31:25 +00:00
parent d3ca13108b
commit bd4a206e76
3 changed files with 15 additions and 2 deletions

View File

@@ -33,7 +33,11 @@ export default function App() {
const res = await axios.get(`${WIZARD_BASE}/api/v1/config/harborforge.json`, {
timeout: 5000,
})
if (res.data && res.data.initialized === true) {
const cfg = res.data || {}
if (cfg.backend_url) {
localStorage.setItem('HF_BACKEND_BASE_URL', cfg.backend_url)
}
if (cfg.initialized === true) {
setAppState('ready')
} else {
setAppState('setup')

View File

@@ -92,6 +92,10 @@ export default function SetupWizardPage({ wizardBase, onComplete }: Props) {
headers: { 'Content-Type': 'application/json' },
})
if (form.backend_base_url) {
localStorage.setItem('HF_BACKEND_BASE_URL', form.backend_base_url)
}
setStep(4)
} catch (err: any) {
setError(`保存配置失败: ${err.message}`)

View File

@@ -1,10 +1,15 @@
import axios from 'axios'
const getApiBase = () => {
return localStorage.getItem('HF_BACKEND_BASE_URL') || import.meta.env.VITE_API_BASE || 'http://127.0.0.1:8000'
}
const api = axios.create({
baseURL: import.meta.env.VITE_API_BASE || '/api',
baseURL: getApiBase(),
})
api.interceptors.request.use((config) => {
config.baseURL = getApiBase()
const token = localStorage.getItem('token')
if (token) {
config.headers.Authorization = `Bearer ${token}`