update pay ui
@@ -59,6 +59,9 @@ server {
|
|||||||
ssl_session_cache shared:SSL:10m;
|
ssl_session_cache shared:SSL:10m;
|
||||||
ssl_session_timeout 1d;
|
ssl_session_timeout 1d;
|
||||||
|
|
||||||
|
# 文件上传大小限制(客服图片上传需要)
|
||||||
|
client_max_body_size 20M;
|
||||||
|
|
||||||
# ============================================
|
# ============================================
|
||||||
# CORS 配置(允<EFBC88>?CDN 域名访问<E8AEBF>?
|
# CORS 配置(允<EFBC88>?CDN 域名访问<E8AEBF>?
|
||||||
# ============================================
|
# ============================================
|
||||||
@@ -488,6 +491,17 @@ server {
|
|||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
|
||||||
|
# 隐藏后端返回的 CORS 头(避免重复)
|
||||||
|
proxy_hide_header Access-Control-Allow-Origin;
|
||||||
|
proxy_hide_header Access-Control-Allow-Credentials;
|
||||||
|
proxy_hide_header Access-Control-Allow-Methods;
|
||||||
|
proxy_hide_header Access-Control-Allow-Headers;
|
||||||
|
|
||||||
|
# 统一添加 CORS 头
|
||||||
|
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||||
|
add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always;
|
||||||
|
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept' always;
|
||||||
|
|
||||||
proxy_cache_valid 200 1d;
|
proxy_cache_valid 200 1d;
|
||||||
expires 1d;
|
expires 1d;
|
||||||
add_header Cache-Control "public, max-age=86400";
|
add_header Cache-Control "public, max-age=86400";
|
||||||
@@ -501,10 +515,20 @@ server {
|
|||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
|
||||||
|
# 隐藏后端返回的 CORS 头(避免重复)
|
||||||
|
proxy_hide_header Access-Control-Allow-Origin;
|
||||||
|
proxy_hide_header Access-Control-Allow-Credentials;
|
||||||
|
proxy_hide_header Access-Control-Allow-Methods;
|
||||||
|
proxy_hide_header Access-Control-Allow-Headers;
|
||||||
|
|
||||||
|
# CORS 头(解决 ERR_BLOCKED_BY_ORB)
|
||||||
|
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||||
|
add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always;
|
||||||
|
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept' always;
|
||||||
|
|
||||||
proxy_cache_valid 200 1d;
|
proxy_cache_valid 200 1d;
|
||||||
expires 1d;
|
expires 1d;
|
||||||
add_header Cache-Control "public, max-age=86400";
|
add_header Cache-Control "public, max-age=86400";
|
||||||
add_header Access-Control-Allow-Origin $cors_origin;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
location /visitor/ {
|
location /visitor/ {
|
||||||
@@ -535,7 +559,8 @@ server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
location = /stomp {
|
location = /stomp {
|
||||||
proxy_pass http://43.143.189.195/api/websocket;
|
# 代理到 bytedesk 的 /websocket 端点
|
||||||
|
proxy_pass http://43.143.189.195/websocket;
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
proxy_set_header Connection $connection_upgrade;
|
proxy_set_header Connection $connection_upgrade;
|
||||||
@@ -560,7 +585,8 @@ server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
location /stomp/ {
|
location /stomp/ {
|
||||||
proxy_pass http://43.143.189.195/api/websocket/;
|
# 代理到 bytedesk 的 /websocket 端点
|
||||||
|
proxy_pass http://43.143.189.195/websocket;
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
proxy_set_header Connection $connection_upgrade;
|
proxy_set_header Connection $connection_upgrade;
|
||||||
@@ -586,8 +612,22 @@ server {
|
|||||||
|
|
||||||
location ^~ /avatars/ {
|
location ^~ /avatars/ {
|
||||||
proxy_pass http://43.143.189.195/uploads/;
|
proxy_pass http://43.143.189.195/uploads/;
|
||||||
|
proxy_http_version 1.1;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
|
||||||
|
# 隐藏后端返回的 CORS 头(避免重复)
|
||||||
|
proxy_hide_header Access-Control-Allow-Origin;
|
||||||
|
proxy_hide_header Access-Control-Allow-Credentials;
|
||||||
|
proxy_hide_header Access-Control-Allow-Methods;
|
||||||
|
proxy_hide_header Access-Control-Allow-Headers;
|
||||||
|
|
||||||
|
# CORS 头(解决 ERR_BLOCKED_BY_ORB)
|
||||||
|
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||||
|
add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always;
|
||||||
|
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept' always;
|
||||||
|
|
||||||
proxy_cache_valid 200 1d;
|
proxy_cache_valid 200 1d;
|
||||||
proxy_cache_bypass $http_cache_control;
|
proxy_cache_bypass $http_cache_control;
|
||||||
|
|||||||
BIN
public/avatars/agent.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 335 KiB |
|
Before Width: | Height: | Size: 259 KiB |
|
Before Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 272 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 438 KiB |
@@ -7,9 +7,6 @@ import { Routes, Route, Navigate } from 'react-router-dom';
|
|||||||
// 路由配置
|
// 路由配置
|
||||||
import { getMainLayoutRoutes, getStandaloneRoutes } from './routeConfig';
|
import { getMainLayoutRoutes, getStandaloneRoutes } from './routeConfig';
|
||||||
|
|
||||||
// Landing 页面(重定向到静态 landing.html)
|
|
||||||
import Landing from '@views/Landing';
|
|
||||||
|
|
||||||
// 布局组件
|
// 布局组件
|
||||||
import MainLayout from '@layouts/MainLayout';
|
import MainLayout from '@layouts/MainLayout';
|
||||||
|
|
||||||
@@ -54,8 +51,8 @@ export function AppRoutes() {
|
|||||||
{/* 独立路由 - 无布局(如登录页)*/}
|
{/* 独立路由 - 无布局(如登录页)*/}
|
||||||
{standaloneRoutes.map(renderRoute)}
|
{standaloneRoutes.map(renderRoute)}
|
||||||
|
|
||||||
{/* 默认路由 - 显示 Landing 页面(跳转到静态 landing.html) */}
|
{/* 默认路由 - 重定向到首页 */}
|
||||||
<Route path="/" element={<Landing />} />
|
<Route path="/" element={<Navigate to="/home" replace />} />
|
||||||
|
|
||||||
{/* 404 页面 - 捕获所有未匹配的路由 */}
|
{/* 404 页面 - 捕获所有未匹配的路由 */}
|
||||||
<Route path="*" element={<Navigate to="/home" replace />} />
|
<Route path="*" element={<Navigate to="/home" replace />} />
|
||||||
|
|||||||