mirror of https://github.com/certd/certd
perf: 支持反向代理增加contextPath路径
parent
b3468cf7f2
commit
0088929622
|
@ -1,12 +1,12 @@
|
|||
VITE_APP_API=/api
|
||||
VITE_APP_API=api
|
||||
#登录与权限关闭
|
||||
VITE_APP_PM_ENABLED=true
|
||||
VITE_APP_TITLE=Certd
|
||||
VITE_APP_SLOGAN=让你的证书永不过期
|
||||
VITE_APP_COPYRIGHT_YEAR=2021-2024
|
||||
VITE_APP_COPYRIGHT_YEAR=2021-2025
|
||||
VITE_APP_COPYRIGHT_NAME=handsfree.work
|
||||
VITE_APP_COPYRIGHT_URL=https://certd.handsfree.work
|
||||
VITE_APP_LOGO=/static/images/logo/logo.svg
|
||||
VITE_APP_LOGIN_LOGO=/static/images/logo/rect-black.svg
|
||||
VITE_APP_LOGO=static/images/logo/logo.svg
|
||||
VITE_APP_LOGIN_LOGO=static/images/logo/rect-black.svg
|
||||
VITE_APP_PROJECT_PATH=https://github.com/certd/certd
|
||||
VITE_APP_NAMESPACE=fs
|
|
@ -1,3 +1,3 @@
|
|||
VITE_APP_API=/api
|
||||
VITE_APP_API=api
|
||||
#登录与权限开启
|
||||
VITE_APP_PM_ENABLED=true
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8"/>
|
||||
<link rel="icon" href="/api/app/favicon"/>
|
||||
<link rel="icon" href="api/app/favicon"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>Loading</title>
|
||||
<script src="/static/icons/iconfont.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/static/index.css"/>
|
||||
<script src="static/icons/iconfont.js?v=<%=version%>"></script>
|
||||
<link rel="stylesheet" type="text/css" href="static/index.css?v=<%=version%>"/>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">
|
||||
|
|
|
@ -21,6 +21,6 @@ const props = defineProps<{
|
|||
}>();
|
||||
|
||||
const nslookupCmd = computed(() => {
|
||||
return `nslookup -qa=txt _acme-challenge.${props.record.domain}`;
|
||||
return `nslookup -q=txt _acme-challenge.${props.record.domain}`;
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -161,10 +161,10 @@ export const useSettingStore = defineStore({
|
|||
//@ts-ignore
|
||||
if (this.isComm) {
|
||||
if (siteInfo.logo) {
|
||||
siteInfo.logo = `/api/basic/file/download?key=${siteInfo.logo}`;
|
||||
siteInfo.logo = `api/basic/file/download?key=${siteInfo.logo}`;
|
||||
}
|
||||
if (siteInfo.loginLogo) {
|
||||
siteInfo.loginLogo = `/api/basic/file/download?key=${siteInfo.loginLogo}`;
|
||||
siteInfo.loginLogo = `api/basic/file/download?key=${siteInfo.loginLogo}`;
|
||||
}
|
||||
}
|
||||
this.siteInfo = _.merge({}, defaultSiteInfo, siteInfo);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<a-descriptions title="" bordered>
|
||||
<a-descriptions-item label="用户名">{{ userInfo.username }}</a-descriptions-item>
|
||||
<a-descriptions-item label="头像">
|
||||
<a-avatar v-if="userInfo.avatar" size="large" :src="'/api/basic/file/download?&key=' + userInfo.avatar" style="background-color: #eee"> </a-avatar>
|
||||
<a-avatar v-if="userInfo.avatar" size="large" :src="'api/basic/file/download?&key=' + userInfo.avatar" style="background-color: #eee"> </a-avatar>
|
||||
<a-avatar v-else size="large" style="background-color: #00b4f5">
|
||||
{{ userInfo.username }}
|
||||
</a-avatar>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<div class="header-profile flex-wrap bg-white dark:bg-black">
|
||||
<div class="flex flex-1">
|
||||
<div class="avatar">
|
||||
<a-avatar v-if="userInfo.avatar" size="large" :src="'/api/basic/file/download?&key=' + userInfo.avatar" style="background-color: #eee"> </a-avatar>
|
||||
<a-avatar v-if="userInfo.avatar" size="large" :src="'api/basic/file/download?&key=' + userInfo.avatar" style="background-color: #eee"> </a-avatar>
|
||||
<a-avatar v-else size="large" style="background-color: #00b4f5">
|
||||
{{ userInfo.username }}
|
||||
</a-avatar>
|
||||
|
|
|
@ -28,7 +28,7 @@ function onChange(value: string) {
|
|||
const imageCodeUrl = ref();
|
||||
function resetImageCode() {
|
||||
const randomStr = nanoid(10);
|
||||
let url = "/api/basic/code/captcha";
|
||||
let url = "api/basic/code/captcha";
|
||||
imageCodeUrl.value = url + "?randomStr=" + randomStr;
|
||||
emit("update:randomStr", randomStr);
|
||||
}
|
||||
|
|
|
@ -164,7 +164,7 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti
|
|||
width: "auto",
|
||||
},
|
||||
buildUrl(key: string) {
|
||||
return `/api/basic/file/download?&key=` + key;
|
||||
return `api/basic/file/download?&key=` + key;
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -190,7 +190,7 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti
|
|||
},
|
||||
},
|
||||
buildUrl(key: string) {
|
||||
return `/api/basic/file/download?&key=` + key;
|
||||
return `api/basic/file/download?&key=` + key;
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -21,9 +21,9 @@ export default ({ command, mode }) => {
|
|||
const env = loadEnv(mode, process.cwd());
|
||||
const devServerFs: any = {};
|
||||
const devAlias: any[] = [];
|
||||
const base = "/";
|
||||
const base = "./";
|
||||
// if (mode.startsWith("dev")) {
|
||||
// base = "/dev";
|
||||
// base = "./";
|
||||
// }
|
||||
return {
|
||||
base: base,
|
||||
|
@ -36,6 +36,7 @@ export default ({ command, mode }) => {
|
|||
data: {
|
||||
title: env.VITE_APP_TITLE,
|
||||
projectPath: env.VITE_APP_PROJECT_PATH,
|
||||
version: env.VITE_APP_VERSION,
|
||||
},
|
||||
},
|
||||
}),
|
||||
|
|
|
@ -87,15 +87,13 @@ export class AliyunDnsProvider extends AbstractDnsProvider {
|
|||
// }
|
||||
|
||||
async createRecord(options: CreateRecordOptions): Promise<any> {
|
||||
const { fullRecord, value, type, domain } = options;
|
||||
const { fullRecord,hostRecord, value, type, domain } = options;
|
||||
this.logger.info('添加域名解析:', fullRecord, value, domain);
|
||||
// const domain = await this.matchDomain(fullRecord);
|
||||
const rr = fullRecord.replace('.' + domain, '');
|
||||
|
||||
const params = {
|
||||
RegionId: 'cn-hangzhou',
|
||||
DomainName: domain,
|
||||
RR: rr,
|
||||
RR: hostRecord,
|
||||
Type: type,
|
||||
Value: value,
|
||||
// Line: 'oversea' // 海外
|
||||
|
|
Loading…
Reference in New Issue