PageSourceSearch

https://www.upma.cn/docs

html upma.cn collected 2026-10-06 13:15:08 UTC 211,310 bytes, 2 lines download raw bytes

1<!DOCTYPE html><html lang="zh-CN" class="scroll-smooth"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.29207c2f.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/d35f63c56af26677.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/a4c94fca0c700d6c.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/de81b9ff91d90478.js"/>
1<script src="/_next/static/chunks/fcda6e343690ddf7.js" async=""></script>
1<script src="/_next/static/chunks/e075697bef6197d4.js" async=""></script>
1<script src="/_next/static/chunks/a58e9621eaaff906.js" async=""></script>
1<script src="/_next/static/chunks/53e1ffdd97e720a8.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-47769c0053d01043.js" async=""></script>
1<script src="/_next/static/chunks/733d483dbb25b2a8.js" async=""></script>
1<script src="/_next/static/chunks/e61992e38fd16c06.js" async=""></script>
1<script src="/_next/static/chunks/fe96ba40e9e8ef1d.js" async=""></script>
1<script src="/_next/static/chunks/db81d66fdcac06eb.js" async=""></script>
1<script src="/_next/static/chunks/61148fb845518522.js" async=""></script>
1<script src="/_next/static/chunks/b2b9122c1b63621e.js" async=""></script>
1<script src="/_next/static/chunks/395e51502c352751.js" async=""></script>
1<script src="/_next/static/chunks/ac22bed2698caa30.js" async=""></script>
1<script src="/_next/static/chunks/8f11cc485796c631.js" async=""></script>
1<meta name="next-size-adjust" content=""/><title>使用指南 - 静态网站托管与域名配置文档 | 上码 Upma</title><meta name="description" content="上码 (Upma) 使用指南。了解如何通过拖拽或 CLI 部署静态网站,配置自定义域名,以及针对 React, Vue, Next.js 等框架的构建设置。"/><meta name="keywords" content="网站部署教程,静态网站托管指南,Upma 使用文档,前端项目部署,自定义域名配置,Next.js 静态部署"/><link rel="canonical" href="https://www.upma.cn/docs"/><meta property="og:title" content="使用指南 - 静态网站托管与域名配置文档 | 上码 Upma"/><meta property="og:description" content="从 0 到 1 学会网站部署:拖拽上传、CLI 发布、域名绑定、框架构建配置一站式指南。"/><meta property="og:url" content="https://www.upma.cn/docs"/><meta property="og:site_name" content="上码 Upma"/><meta property="og:type" content="article"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="使用指南 - 静态网站托管与域名配置文档 | 上码 Upma"/><meta name="twitter:description" content="从 0 到 1 学会网站部署:拖拽上传、CLI 发布、域名绑定、框架构建配置一站式指南。"/><link rel="icon" href="/favicon.ico?favicon.441ae040.ico" sizes="256x256" type="image/x-icon"/>
1<script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script>
1</head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased overflow-x-hidden bg-gray-50 dark:bg-[#050505] text-slate-900 dark:text-white"><div hidden=""><!--$--><!--/$--></div><style>#nprogress{pointer-events:none}#nprogress .bar{background:linear-gradient(to right, #6366f1, #8b5cf6, #ec4899);position:fixed;z-index:1600;top: 0;left:0;width:100%;height:3px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #8b5cf6,0 0 5px #8b5cf6;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1600;top: 15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:linear-gradient(to right, #6366f1, #8b5cf6, #ec4899);border-left-color:linear-gradient(to right, #6366f1, #8b5cf6, #ec4899);border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}</style>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"上码","applicationCategory":"DeveloperApplication","operatingSystem":"Web","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"description":"A platform to deploy AI-generated code (DeepSeek, ChatGPT, Claude) to the web instantly."}</script>
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
1<div class="bg-[#050505] text-white"><div class="fixed inset-0 pointer-events-none overflow-hidden"><div class="absolute top-0 left-1/4 w-96 h-96 bg-purple-600/30 rounded-full mix-blend-multiply filter blur-[128px] opacity-24 animate-blob"></div><div class="absolute top-0 right-1/4 w-96 h-96 bg-blue-600/30 rounded-full mix-blend-multiply filter blur-[128px] opacity-24 animate-blob animation-delay-2000"></div><div class="absolute -bottom-32 left-1/3 w-96 h-96 bg-pink-600/30 rounded-full mix-blend-multiply filter blur-[128px] opacity-24 animate-blob animation-delay-3000"></div><div class="absolute inset-0 bg-[url(&#x27;/noise.svg&#x27;)] opacity-26"></div></div><nav class="fixed top-0 w-full z-50 backdrop-blur-xl border-b transition-all bg-white/80 border-stone-200 supports-[backdrop-filter]:bg-white/60"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="flex justify-between items-center h-16 relative"><div class="flex items-center gap-2 cursor-pointer relative z-20"><svg width="160" height="32" viewBox="0 0 160 40" fill="none" xmlns="http://www.w3.org/2000/svg" class="-ml-4 sm:ml-0" aria-label="上码 Logo"><defs><linearGradient id="circle_bg" x1="0" y1="0" x2="40" y2="40" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#1e1b4b"></stop> <stop offset="100%" stop-color="#2e1065"></stop> </linearGradient><linearGradient id="triangle_gradient" x1="20" y1="10" x2="20" y2="32" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#6366f1"></stop> <stop offset="50%" stop-color="#8b5cf6"></stop> <stop offset="100%" stop-color="#ec4899"></stop> </linearGradient><linearGradient id="light_text_gradient" x1="0" y1="0" x2="0" y2="100%" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#1f2937"></stop> <stop offset="100%" stop-color="#4b5563"></stop> </linearGradient><filter id="text_shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="1" stdDeviation="1" flood-color="#000000" flood-opacity="0.1"></feDropShadow></filter></defs><g><circle cx="20" cy="20" r="20" fill="url(#circle_bg)"></circle><circle cx="20" cy="20" r="19" stroke="white" stroke-opacity="0.1" stroke-width="1"></circle><path d="M20 11L30 29H10L20 11Z" fill="url(#triangle_gradient)" class="drop-shadow-sm"></path></g><g transform="translate(48, 0)"><text x="0" y="29" fill="url(#light_text_gradient)" filter="url(#text_shadow)" font-size="24" font-weight="900" font-family="PingFang SC, Microsoft YaHei, system-ui, sans-serif" letter-spacing="0.02em">上码</text><g transform="translate(54, 0)"><text x="0" y="17" fill="url(#triangle_gradient)" font-size="12" font-weight="900" font-family="Manrope, Inter, system-ui, sans-serif" letter-spacing="0.1em" style="text-transform:uppercase">up</text><text x="0" y="31" font-size="12" font-family="Manrope, Inter, system-ui, sans-serif" font-weight="900" letter-spacing="0.1em"><tspan fill="url(#triangle_gradient)" style="text-transform:uppercase">ma</tspan><tspan fill="#4b5563" fill-opacity="1" font-weight="600" font-size="10" dx="2">.cn</tspan></text></g></g></svg></div><div class="hidden md:flex items-center space-x-1 absolute left-1/2 -translate-x-1/2 h-full"><div class="relative h-full flex items-center px-4"><button class="flex items-center gap-1 text-[0.925rem] font-medium transition-colors text-stone-600 hover:text-stone-900">功能<svg class="w-4 h-4 transition-transform duration-200 text-stone-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button><div class="absolute top-full left-1/2 -translate-x-1/2 pt-4 w-[820px]" style="opacity:0;pointer-events:none;visibility:hidden;transform:translateY(10px) scale(0.95)"><div class="bg-white border border-stone-200 rounded-2xl shadow-2xl p-6 relative overflow-hidden"><div class="absolute inset-0 bg-linear-to-br from-transparent to-transparent pointer-events-none"></div><div class="grid grid-cols-3 gap-4 relative z-10"><a class="group flex items-start gap-4 p-4 rounded-xl transition-colors hover:bg-stone-50" href="/features/global-cdn"><div class="p-2 rounded-lg transition-colors bg-stone-100 text-stone-600 group-hover:text-amber-600 group-hover:bg-amber-50"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 
10 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg></div><div><div class="text-sm font-bold transition-colors text-stone-800 group-hover:text-amber-600">全球 CDN 加速</div><div class="text-xs mt-1 text-stone-500 group-hover:text-stone-600">280+ 节点毫秒级触达</div></div></a><a class="group flex items-start gap-4 p-4 rounded-xl transition-colors hover:bg-stone-50" href="/features/free-ssl"><div class="p-2 rounded-lg transition-colors bg-stone-100 text-stone-600 group-hover:text-amber-600 group-hover:bg-amber-50"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg></div><div><div class="text-sm font-bold transition-colors text-stone-800 group-hover:text-amber-600">免费 SSL 证书</div><div class="text-xs mt-1 text-stone-500 group-hover:text-stone-600">自动续期,永久免费</div></div></a><a class="group flex items-start gap-4 p-4 rounded-xl transition-colors hover:bg-stone-50" href="/features/cli-deploy"><div class="p-2 rounded-lg transition-colors bg-stone-100 text-stone-600 group-hover:text-amber-600 group-hover:bg-amber-50"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg></div><div><div class="text-sm font-bold transition-colors text-stone-800 group-hover:text-amber-600">CLI 极速部署</div><div class="text-xs mt-1 text-stone-500 group-hover:text-stone-600">一行命令发布上线</div></div></a><a class="group flex items-start gap-4 p-4 rounded-xl transition-colors hover:bg-stone-50" href="/features/instant-rollback"><div class="p-2 rounded-lg transition-colors bg-stone-100 text-stone-600 group-hover:text-amber-600 group-hover:bg-amber-50"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg></div><div><div class="text-sm font-bold transition-colors text-stone-800 group-hover:text-amber-600">秒级回滚</div><div class="text-xs mt-1 text-stone-500 group-hover:text-stone-600">快速恢复到任意版本</div></div></a><a class="group flex items-start gap-4 p-4 rounded-xl transition-colors hover:bg-stone-50" href="/features/custom-domains"><div class="p-2 rounded-lg transition-colors bg-stone-100 text-stone-600 group-hover:text-amber-600 group-hover:bg-amber-50"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"></path></svg></div><div><div class="text-sm font-bold transition-colors text-stone-800 group-hover:text-amber-600">自定义域名</div><div class="text-xs mt-1 text-stone-500 group-hover:text-stone-600">绑定您的专属品牌域名</div></div></a><a class="group flex items-start gap-4 p-4 rounded-xl transition-colors hover:bg-stone-50" href="/features/password-protection"><div class="p-2 rounded-lg transition-colors bg-stone-100 text-stone-600 group-hover:text-amber-600 group-hover:bg-amber-50"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path></svg></div><div><div class="text-sm font-bold transition-colors text-stone-800 group-hover:text-amber-600">密码访问保护</div><div class="text-xs mt-1 text-stone-500 group-hover:text-stone-600">私密项目安全防护</div></div></a><a class="group flex items-start gap-4 p-4 rounded-xl transition-colors hover:bg-stone-50" href="/features/analytics"><div class="p-2 rounded-lg transition-colors bg-stone-100 text-stone-600 group-hover:text-amber-600 group-hover:bg-amber-50"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path></svg></div><div><div class="text-sm font-bold transition-colors text-stone-800 group-hover:text-amber-600">访问统计</div><div class="text-xs mt-1 text-stone-500 group-hover:text-stone-600">实时流量分析与洞察</div></div></a><a class="group flex items-start gap-4 p-4 rounded-xl transition-colors hover:bg-stone-50" href="/features/team-collaboration"><div class="p-2 rounded-lg transition-colors bg-stone-100 text-stone-600 group-hover:text-amber-600 group-hover:bg-amber-50"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 
10 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"></path></svg></div><div><div class="text-sm font-bold transition-colors text-stone-800 group-hover:text-amber-600">团队协作</div><div class="text-xs mt-1 text-stone-500 group-hover:text-stone-600">多人协同开发与管理</div></div></a><a class="group flex items-start gap-4 p-4 rounded-xl transition-colors hover:bg-stone-50" href="/features"><div class="p-2 rounded-lg transition-colors bg-stone-100 text-stone-600 group-hover:text-amber-600 group-hover:bg-amber-50"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm10 0a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zm10 0a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z"></path></svg></div><div><div class="text-sm font-bold transition-colors text-stone-800 group-hover:text-amber-600">全部特性</div><div class="text-xs mt-1 text-stone-500 group-hover:text-stone-600">探索所有平台能力</div></div></a></div></div></div></div><div class="relative h-full flex items-center px-4"><button class="flex items-center gap-1 text-[0.925rem] font-medium transition-colors text-stone-600 hover:text-stone-900">工具<svg class="w-4 h-4 transition-transform duration-200 text-stone-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button><div class="absolute top-full left-1/2 -translate-x-1/2 pt-4 w-[1000px]" style="opacity:0;pointer-events:none;visibility:hidden;transform:translateY(10px) scale(0.95)"><div class="bg-white border border-stone-200 rounded-2xl shadow-2xl p-6 relative overflow-hidden"><div class="absolute inset-0 bg-linear-to-br from-transparent to-transparent pointer-events-none"></div><div class="grid grid-cols-5 gap-8 relative z-10"><div><h4 class="text-xs font-bold uppercase tracking-wider mb-4 border-b pb-2 text-stone-500 border-stone-100">框架部署</h4><ul class="space-y-2"><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/frameworks"><span>框架部署总览</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">导航</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/deploy-html"><span>HTML 部署</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">热门</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/deploy-vue"><span>Vue 部署</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">流行</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/deploy-react"><span>React 部署</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">流行</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/deploy-next"><span>Next.js 部署</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">热门</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/deploy-deepseek"><span>DeepSeek 部署</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">AI</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/deploy-chatgpt"><span>ChatGPT 部署</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">AI</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/deploy-gemini"><span>Gemini 部署</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">AI</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/host-pdf"><span>PDF 托管</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">工具</span></a></li></ul></div><div><h4 class="text-xs font-bold uppercase tracking-wider mb-4 border-b pb-2 text-stone-500 border-stone-100">托管场景</h4><ul class="space-y-2"><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/personal-website"><span>个人网站托管</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">热门</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/student-hosting"><span>学生作业托管</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">免费</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/resume"><span>简历托管</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">推荐</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/portfolio"><span>作品集托管</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">设计</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/documentation"><span>文档托管</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">技术</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/marketing"><span>H5 营销页</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">运营</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/web-games"><span>Web 游戏托管</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">娱乐</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/deploy/link-in-bio"><span>导航页托管</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">社交</span></a></li></ul></div><div><h4 class="text-xs font-bold uppercase tracking-wider mb-4 border-b pb-2 text-stone-500 border-stone-100">开发必备</h4><ul class="space-y-2"><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/json-formatter"><span>JSON 格式化</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">日常</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/timestamp"><span>
1时间戳转换</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">日常</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/uuid"><span>UUID/ULID</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">生成</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/regex"><span>正则测试 (Regex)</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">专业</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/sql-formatter"><span>SQL 格式化</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">格式</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/jwt"><span>JWT 解析</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">调试</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/crontab"><span>Crontab 生成</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">工具</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/chmod"><span>Linux 权限计算</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">运维</span></a></li></ul></div><div><h4 class="text-xs font-bold uppercase tracking-wider mb-4 border-b pb-2 text-stone-500 border-stone-100">前端与设计</h4><ul class="space-y-2"><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/qrcode"><span>二维码生成</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">生成</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/mockup"><span>设备样机生成</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">设计</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/svg-optimizer"><span>SVG 压缩</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">优化</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/favicon"><span>Favicon 生成</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">生成</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/color-converter"><span>颜色转换</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">设计</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/minifier"><span>代码压缩 (Minifier)</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">优化</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/css-to-tailwind"><span>CSS 转 Tailwind</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">转换</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/og-image"><span>OG 图片生成</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">社交</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/lorem-ipsum"><span>Lorem Ipsum</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">文本</span></a></li></ul></div><div><h4 class="text-xs font-bold uppercase tracking-wider mb-4 border-b pb-2 text-stone-500 border-stone-100">网络与 SEO</h4><ul class="space-y-2"><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/ip"><span>IP 查询</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">查询</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/ssl-check"><span>SSL 证书检测</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">最新</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/ping"><span>Ping 检测</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">网络</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/dns"><span>DNS 查询</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">查询</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/user-agent"><span>User Agent 分析</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">信息</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/robots"><span>Robots.txt</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">SEO</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/meta-generator"><span>Meta 生成器</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">SEO</span></a></li><li><a class="flex items-center justify-between text-sm group transition-colors text-stone-600 hover:text-amber-600" href="/tools/utm-builder"><span>UTM 参数生成</span><span class="text-[10px] px-1.5 py-0.5 rounded ml-2 bg-amber-50 text-amber-600">追踪</span></a></li></ul></div></div></div></div></div><a class="px-4 text-[0.925rem] font-medium transition-colors text-stone-600 hover:text-stone-900" href="/pricing">定价</a><a class="px-4 text-[0.925rem] font-medium transition-colors cursor-pointer text-stone-600 hover:text-stone-900" href="/docs">教程</a><a class="px-4 text-[0.925rem] font-medium transition-colors cursor-pointer text-stone-600 hover:text-stone-900" href="/explore">探索广场</a></div><div class="flex items-center gap-4 relative z-20"><a class="text-sm font-medium transition-colors md:hidden text-stone-600 hover:text-stone-900" href="/pricing">定价</a><button class="text-sm font-medium transition-colors hidden sm:block text-stone-600 hover:text-stone-900">登录</button><button class="text-white rounded-full px-5 py-1.5 text-sm font-medium transition-colors bg-[#050505] hover:bg-black shadow-lg shadow-black/20">免费注册</button></div></div></div></nav><main>
1<script type="application/ld+json">[{"@context":"https://schema.org","@type":"TechArticle","headline":"上码使用指南","description":"上码官方文档,包含拖拽部署、CLI 部署、自定义域名配置与常见框架发布说明。","url":"https://www.upma.cn/docs","inLanguage":"zh-CN"},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"首页","item":"https://www.upma.cn"},{"@type":"ListItem","position":2,"name":"使用指南","item":"https://www.upma.cn/docs"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"上码支持哪些部署方式?","acceptedAnswer":{"@type":"Answer","text":"支持拖拽上传和 CLI 两种方式。新手可直接拖拽静态文件夹,工程化项目可使用构建产物配合 CLI 发布。"}},{"@type":"Question","name":"部署后出现 404 通常怎么排查?","acceptedAnswer":{"@type":"Answer","text":"优先检查是否存在 index.html、上传根目录是否正确、路由模式是否需要重写以及 DNS 解析是否已生效。"}},{"@type":"Question","name":"是否支持自定义域名和 HTTPS?","acceptedAnswer":{"@type":"Answer","text":"支持。你可以绑定自己的域名,并通过平台自动配置 HTTPS 证书与续期,减少运维成本。"}}]},{"@context":"https://schema.org","@type":"HowTo","name":"5 分钟完成静态网站部署","description":"按照文档步骤完成文件准备、上传发布、域名绑定与上线验证。","step":[{"@type":"HowToStep","name":"准备发布目录","text":"确认项目构建完成,目录中包含可访问入口文件 index.html。"},{"@type":"HowToStep","name":"上传并发布","text":"通过拖拽或 CLI 上传构建目录,等待系统完成静态资源分发。"},{"@type":"HowToStep","name":"绑定域名并验证","text":"配置 DNS 解析后绑定自定义域名,使用 DNS/SSL 工具检查解析和证书状态。"}]}]</script>
1<div class="min-h-screen bg-white text-zinc-900 selection:bg-blue-600 selection:text-white"><div class="border-b border-zinc-200"><div class="container mx-auto max-w-7xl px-6 py-3"><nav class="flex items-center gap-2 text-sm text-zinc-500"><a class="hover:text-zinc-900 transition-colors" href="/">首页</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right w-3.5 h-3.5" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg><span class="text-zinc-900 font-medium">使用指南</span></nav></div></div><div class="container mx-auto max-w-7xl px-6 py-12"><div class="flex gap-16"><aside class="hidden lg:block w-64 shrink-0"><div class="sticky top-28 max-h-[calc(100vh-8rem)] overflow-y-auto pr-4 pb-10"><nav class="space-y-6"><div><a href="#quick-start" class="block text-sm font-semibold transition-colors text-blue-600">快速开始</a><ul class="mt-2 space-y-2 border-l border-zinc-200 pl-4"><li><a href="#drag-deploy" class="block text-sm transition-colors text-zinc-500 hover:text-zinc-900">拖拽部署</a></li><li><a href="#cli-deploy" class="block text-sm transition-colors text-zinc-500 hover:text-zinc-900">CLI 部署</a></li></ul></div><div><a href="#frameworks" class="block text-sm font-semibold transition-colors text-zinc-900 hover:text-zinc-600">框架指南</a><ul class="mt-2 space-y-2 border-l border-zinc-200 pl-4"><li><a href="#react-vue" class="block text-sm transition-colors text-zinc-500 hover:text-zinc-900">React / Vue / Vite</a></li><li><a href="#nextjs" class="block text-sm transition-colors text-zinc-500 hover:text-zinc-900">Next.js</a></li><li><a href="#static-html" class="block text-sm transition-colors text-zinc-500 hover:text-zinc-900">静态 HTML</a></li><li><a href="#ssg" class="block text-sm transition-colors text-zinc-500 hover:text-zinc-900">Hugo / Hexo</a></li></ul></div><div><a href="#domains" class="block text-sm font-semibold transition-colors text-zinc-900 hover:text-zinc-600">自定义域名</a><ul class="mt-2 space-y-2 border-l border-zinc-200 pl-4"><li><a href="#add-domain" class="block text-sm transition-colors text-zinc-500 hover:text-zinc-900">添加域名</a></li><li><a href="#dns-config" class="block text-sm transition-colors text-zinc-500 hover:text-zinc-900">DNS 配置</a></li><li><a href="#ssl" class="block text-sm transition-colors text-zinc-500 hover:text-zinc-900">SSL 证书</a></li></ul></div><div><a href="#faq" class="block text-sm font-semibold transition-colors text-zinc-900 hover:text-zinc-600">常见问题</a></div></nav><div class="mt-10 pt-6 border-t border-zinc-200"><a class="flex items-center gap-2 text-sm text-zinc-500 hover:text-zinc-900 transition-colors" href="/explore">探索广场 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right w-3 h-3" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div></div></aside><main class="flex-1 min-w-0 max-w-3xl"><header class="mb-12 pb-8 border-b border-zinc-200"><p class="text-sm font-medium text-blue-500 mb-4">Documentation</p><h1 class="text-4xl font-bold tracking-tight text-zinc-900 mb-4">使用指南</h1><p class="text-lg text-zinc-600 leading-relaxed">本指南将手把手教您如何将网站发布到互联网上。即使您是第一次接触网站部署,跟着下面的步骤操作,也能在 5 分钟内完成。</p><div class="mt-6 flex flex-wrap gap-2"><a class="rounded-full border border-zinc-200 px-3 py-1 text-sm text-zinc-600 hover:border-blue-400 hover:text-blue-600 transition-colors" href="/deploy/deploy-react">React 部署指南</a><a class="rounded-full border border-zinc-200 px-3 py-1 text-sm text-zinc-600 hover:border-blue-400 hover:text-blue-600 transition-colors" href="/deploy/deploy-next">Next.js 部署指南</a><a class="rounded-full border border-zinc-200 px-3 py-1 text-sm text-zinc-600 hover:border-blue-400 hover:text-blue-600 transition-colors" href="/tools/dns">DNS 解析查询工具</a><a class="rounded-full border border-zinc-200 px-3 py-1 text-sm text-zinc-600 hover:border-blue-400 hover:text-blue-600 transition-colors" href="/tools/ssl-check">SSL 证书检测工具</a><a class="rounded-full border border-zinc-200 px-3 py-1 text-sm text-zinc-600 hover:border-blue-400 hover:text-blue-600 transition-colors" href="/tools/meta-generator">Meta 标签生成器</a></div></header><div class="prose prose-zinc max-w-none prose-lg dark:prose-invert prose-headings:scroll-mt-28 prose-a:text-blue-600 prose-a:no-underline hover:prose-a:underline prose-img:rounded-xl"><section id="quick-start" class="mb-20 scroll-mt-28"><h2>快速开始</h2><p><strong>什么是「部署」?</strong> <!-- -->简单来说,部署就是把你电脑上的网页文件上传到服务器,让全世界的人都能通过网址访问。上码 (Upma) 帮你省去了租服务器、配置域名等繁琐步骤。</p><h3 id="drag-deploy" class="scroll-mt-28">方式一:拖拽部署(推荐新手)</h3><p>这是最简单的方式,不需要安装任何软件,也不需要敲命令。只要用鼠标拖一下文件夹,网站就上线了。</p>
1<div class="my-4 rounded-lg border border-emerald-200 bg-emerald-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb w-4 h-4" aria-hidden="true"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg></div><div class="text-sm text-zinc-700"><p class="font-semibold mb-1">适用场景</p><div class="[&amp;&gt;p]:m-0">个人博客、简历页面、作品集、活动页、任何静态网页都可以用这种方式部署。</div></div></div></div><ul class="list-none pl-0 space-y-12 mt-8"><li class="flex gap-4"><div class="flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1">1</div><div class="text-stone-700 leading-relaxed"><strong>准备网页文件</strong><p class="mt-2 text-base">首先,你需要有一个包含网页文件的文件夹。这个文件夹里<strong>必须</strong>有一个叫 <code>index.html</code> <!-- -->的文件,这是网站的入口页面。</p><div class="mt-4 not-prose"><div class="group relative rounded-lg border border-zinc-200 bg-zinc-950 overflow-hidden my-6 text-sm text-zinc-50"><div class="flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-zinc-900"><span class="text-xs text-zinc-400 font-mono">文件夹结构示例</span><button class="p-1.5 rounded-md bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700 transition-colors" aria-label="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="relative"><pre class="p-4 overflow-x-auto text-[13px] leading-6"><code class="language-text"><span class="block ">my-website/</span><span class="block ">├── index.html      ← 必须有这个文件!</span><span class="block ">├── style.css       ← 样式文件(可选)</span><span class="block ">├── script.js       ← 脚本文件(可选)</span><span class="block ">└── images/         ← 图片文件夹(可选)</span><span class="block ">    ├── logo.png</span><span class="block ">    └── photo.jpg</span></code></pre></div></div></div><div class="mt-4 not-prose"><div class="my-4 rounded-lg border border-amber-200 bg-amber-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert w-4 h-4" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg></div><div class="text-sm text-zinc-700"><p class="font-semibold mb-1">常见错误</p><div class="[&amp;&gt;p]:m-0"><p>如果你的文件夹里没有 <code>index.html</code>,或者它在子文件夹里,部署后访问会显示 404 错误。</p><p class="mt-2 text-zinc-600"><strong>💡 补救小贴士:</strong>如果不小心传错了也没关系。部署完成后,你可以在项目后台的「页面列表」里找到正确的文件,点击右侧菜单将其<strong>「设为主页」</strong>即可修复。</p></div></div></div></div></div><div class="mt-4 not-prose"><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50" style="aspect-ratio:800/400"><img alt="文件结构示例" loading="lazy" width="800" height="400" decoding="async" data-nimg="1" class="w-full h-full object-cover" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-folder-structure.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-folder-structure.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-folder-structure.png&amp;w=1920&amp;q=75"/></div></div></div></li><li class="flex gap-4"><div class="flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1">2</div><div class="text-stone-700 leading-relaxed"><strong>登录上码</strong><p class="mt-2 text-base">打开浏览器,访问<!-- --> <a href="https://www.upma.cn">www.upma.cn</a>。如果你还没有账号,可以用手机号或微信快速注册。</p><div class="mt-4 not-prose"><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50" style="aspect-ratio:800/500"><img alt="登录界面" loading="lazy" width="800" height="500" decoding="async" data-nimg="1" class="w-full h-full object-cover" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-home-login.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-home-login.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-home-login.png&amp;w=1920&amp;q=75"/></div></div></div></li><li class="flex gap-4"><div class="flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1">3</div><div class="text-stone-700 leading-relaxed"><strong>找到「上传区域」</strong><p class="mt-2 text-base">登录后,你会看到首页有一个大大的上传区域。它不仅支持<strong>拖拽</strong>,也可以直接<strong>点击</strong>来选择文件。</p><div class="mt-4 not-prose"><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50" style="aspect-ratio:800/500"><img alt="上传区域" loading="lazy" width="800" height="500" decoding="async" data-nimg="1" class="w-full h-full object-cover" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-upload-zone.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-upload-zone.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-upload-zone.png&amp;w=1920&amp;q=75"/></div></div></div></li><li class="flex gap-4"><div class="flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1">4</div><div class="text-stone-700 leading-relaxed"><strong>上传文件</strong><p class="mt-2 text-base">你可以通过以下<strong>任意一种方式</strong>上传:</p><ul class="mt-2 list-disc list-inside text-zinc-600 space-y-1"><li><strong>拖拽文件夹</strong>:将整个网页文件夹拖入框内(推荐)。</li><li><strong>拖拽压缩包</strong>:将 zip 格式的压缩包拖入框内。</li><li><strong>拖拽单文件</strong>:直接拖入 index.html 等单独文件。</li><li><strong>点击选择</strong>:点击上传区域,在弹出的文件窗口中选择。</li></ul><div class="mt-4 not-prose"><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50" style="aspect-ratio:800/500"><img alt="上传区域" loading="lazy" width="800" height="500" decoding="async" data-nimg="1" class="w-full h-full object-cover" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-upload-zone2.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-upload-zone2.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-upload-zone2.png&amp;w=1920&amp;q=75"/></div>
1<div class="my-4 rounded-lg border border-blue-200 bg-blue-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info w-4 h-4" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></div><div class="text-sm text-zinc-700"><div class="[&amp;&gt;p]:m-0">无论使用哪种方式,请确保你的文件里包含<!-- --> <strong>index.html</strong>,它是网站的入口。</div></div></div></div></div></div></li><li class="flex gap-4"><div class="flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1">5</div><div class="text-stone-700 leading-relaxed"><strong>等待上传完成</strong><p class="mt-2 text-base">拖入后,系统会自动开始上传文件。你会看到一个进度条。上传速度取决于你的文件大小和网络状况,通常几秒到几分钟不等。</p><div class="mt-4 not-prose"><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50" style="aspect-ratio:800/500"><img alt="上传区域" loading="lazy" width="800" height="500" decoding="async" data-nimg="1" class="w-full h-full object-cover" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-upload-zone3.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-upload-zone3.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-upload-zone3.png&amp;w=1920&amp;q=75"/></div></div></div></li><li class="flex gap-4"><div class="flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1">6</div><div class="text-stone-700 leading-relaxed"><strong>获取访问链接</strong><p class="mt-2 text-base">上传完成后,系统会给你一个专属链接,格式类似<!-- --> <code>https://xxx.upma.site</code>。点击这个链接,就能看到你的网站了!🎉</p><div class="mt-4 not-prose"><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50" style="aspect-ratio:800/500"><img alt="部署成功" loading="lazy" width="800" height="500" decoding="async" data-nimg="1" class="w-full h-full object-cover" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-deploy-success.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-deploy-success.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-deploy-success.png&amp;w=1920&amp;q=75"/></div><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50" style="aspect-ratio:800/500"><img alt="部署成功" loading="lazy" width="800" height="500" decoding="async" data-nimg="1" class="w-full h-full object-cover" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-deploy-success2.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-deploy-success2.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-deploy-success2.png&amp;w=1920&amp;q=75"/></div></div><div class="mt-4 not-prose"><div class="my-4 rounded-lg border border-emerald-200 bg-emerald-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb w-4 h-4" aria-hidden="true"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg></div><div class="text-sm text-zinc-700"><p class="font-semibold mb-1">恭喜!</p><div class="[&amp;&gt;p]:m-0">你的网站已经上线了!现在可以把这个链接分享给朋友、放到简历里、或者发到社交媒体了。</div></div></div></div></div></div></li></ul><h3 id="cli-deploy" class="mt-16 scroll-mt-28">方式二:命令行部署(适合开发者)</h3><p>
1如果你是程序员,或者需要把部署集成到自动化流程中(比如 GitHub Actions),可以使用我们的命令行工具。</p><div class="my-4 rounded-lg border border-blue-200 bg-blue-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info w-4 h-4" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></div><div class="text-sm text-zinc-700"><div class="[&amp;&gt;p]:m-0">CLI 工具目前正在开发中,以下为预览版文档。</div></div></div></div><h4 class="text-base font-semibold text-zinc-900 mt-8 mb-4">安装 CLI</h4><p>打开终端(macOS/Linux)或命令提示符(Windows),输入以下命令:</p><div class="group relative rounded-lg border border-zinc-200 bg-zinc-950 overflow-hidden my-6 text-sm text-zinc-50"><div class="flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-zinc-900"><span class="text-xs text-zinc-400 font-mono">Terminal</span><button class="p-1.5 rounded-md bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700 transition-colors" aria-label="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="relative"><pre class="p-4 overflow-x-auto text-[13px] leading-6"><code class="language-bash"><span class="block ">npm install -g upma-cli</span></code></pre></div></div><p><strong>什么是终端?</strong> <!-- -->终端是一个可以输入命令的黑色窗口。在 macOS 上按<!-- --> <code>Cmd + 空格</code> 搜索「Terminal」可以打开;在 Windows 上按 <code>Win + R</code>,输入 <code>cmd</code> 回车。</p><h4 class="text-base font-semibold text-zinc-900 mt-8 mb-4">登录</h4><div class="group relative rounded-lg border border-zinc-200 bg-zinc-950 overflow-hidden my-6 text-sm text-zinc-50"><div class="flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-zinc-900"><span class="text-xs text-zinc-400 font-mono">Terminal</span><button class="p-1.5 rounded-md bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700 transition-colors" aria-label="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="relative"><pre class="p-4 overflow-x-auto text-[13px] leading-6"><code class="language-bash"><span class="block ">upma login</span></code></pre></div></div><p>执行后会弹出浏览器让你授权登录。</p><h4 class="text-base font-semibold text-zinc-900 mt-8 mb-4">部署</h4><p>进入你的项目目录,执行部署命令:</p><div class="group relative rounded-lg border border-zinc-200 bg-zinc-950 overflow-hidden my-6 text-sm text-zinc-50"><div class="flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-zinc-900"><span class="text-xs text-zinc-400 font-mono">Terminal</span><button class="p-1.5 rounded-md bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700 transition-colors" aria-label="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="relative"><pre class="p-4 overflow-x-auto text-[13px] leading-6"><code class="language-bash"><span class="block ">cd my-website</span><span class="block ">upma deploy</span></code></pre></div></div><p>系统会自动上传当前目录下的所有文件,并返回访问链接。</p></section><section id="frameworks" class="mb-20 scroll-mt-28"><h2>
1框架构建指南</h2><p>如果你使用 React、Vue、Next.js 等现代前端框架开发网站,需要先「构建」项目,生成可以直接运行的静态文件,然后再上传。</p><div class="my-4 rounded-lg border border-blue-200 bg-blue-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info w-4 h-4" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></div><div class="text-sm text-zinc-700"><p class="font-semibold mb-1">什么是「构建」?</p><div class="[&amp;&gt;p]:m-0">现代框架的源代码(.jsx, .vue, .ts 等)浏览器无法直接运行。构建就是把这些源代码转换成浏览器能理解的 HTML/CSS/JS 文件。</div></div></div></div><h3 id="react-vue" class="mt-12 scroll-mt-28">React / Vue / Vite 项目</h3><p>这是最常见的前端项目类型。构建步骤如下:</p><h4 class="text-base font-semibold text-zinc-900 mt-6 mb-4">1. 打开终端,进入项目目录</h4><div class="group relative rounded-lg border border-zinc-200 bg-zinc-950 overflow-hidden my-6 text-sm text-zinc-50"><div class="flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-zinc-900"><span class="text-xs text-zinc-400 font-mono">Terminal</span><button class="p-1.5 rounded-md bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700 transition-colors" aria-label="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="relative"><pre class="p-4 overflow-x-auto text-[13px] leading-6"><code class="language-bash"><span class="block ">cd /path/to/your/project</span></code></pre></div></div><h4 class="text-base font-semibold text-zinc-900 mt-6 mb-4">2. 执行构建命令</h4><div class="group relative rounded-lg border border-zinc-200 bg-zinc-950 overflow-hidden my-6 text-sm text-zinc-50"><div class="flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-zinc-900"><span class="text-xs text-zinc-400 font-mono">Terminal</span><button class="p-1.5 rounded-md bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700 transition-colors" aria-label="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="relative"><pre class="p-4 overflow-x-auto text-[13px] leading-6"><code class="language-bash"><span class="block ">npm run build</span></code></pre></div></div><p>构建完成后,项目目录里会多出一个 <code>dist</code> <!-- -->文件夹(有些项目可能叫 <code>build</code>)。</p><div class="my-8 w-full rounded-xl border border-zinc-200 bg-zinc-50 overflow-hidden h-64 flex flex-col"><div class="h-8 border-b border-zinc-200 bg-zinc-100 flex items-center px-4 gap-2"><div class="flex gap-1.5"><div class="w-2.5 h-2.5 rounded-full bg-red-400/50"></div><div class="w-2.5 h-2.5 rounded-full bg-amber-400/50"></div><div class="w-2.5 h-2.5 rounded-full bg-emerald-400/50"></div></div><div class="ml-4 text-xs text-zinc-400 font-mono">Terminal</div></div><div class="flex-1 flex flex-col items-center justify-center p-8 text-zinc-400/50 bg-white/50 relative"><div class="absolute inset-0 opacity-[0.03] bg-[radial-gradient(#000_1px,transparent_1px)] [background-size:16px_16px]"></div><div class="mb-4 transform transition-transform hover:scale-110 duration-500"><svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></div><p class="text-sm font-medium text-zinc-500 relative z-10 px-4 py-2 bg-white/80 rounded-full border border-zinc-100 shadow-sm animate-pulse-slow">终端显示 npm run build 命令执行成功,以及 dist 文件夹生成</p></div></div><h4 class="text-base font-semibold text-zinc-900 mt-6 mb-4">3. 上传 dist 文件夹</h4><p>把 <code>dist</code> 文件夹(不是里面的文件)拖拽到上码的 上传区域即可。</p>
1<div class="my-4 rounded-lg border border-amber-200 bg-amber-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert w-4 h-4" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg></div><div class="text-sm text-zinc-700"><p class="font-semibold mb-1">注意</p><div class="[&amp;&gt;p]:m-0">不要上传整个项目目录!只上传 <code>dist</code> <!-- -->文件夹,其他文件(如 node_modules、src)不需要也不应该上传。</div></div></div></div><h3 id="nextjs" class="mt-12 scroll-mt-28">Next.js 项目</h3><p>Next.js 默认是「服务端渲染」模式,需要额外配置才能导出静态文件。</p><h4 class="text-base font-semibold text-zinc-900 mt-6 mb-4">1. 修改配置文件</h4><p>打开项目根目录的 <code>next.config.js</code>(如果没有就新建一个),添加以下配置:</p><div class="group relative rounded-lg border border-zinc-200 bg-zinc-950 overflow-hidden my-6 text-sm text-zinc-50"><div class="flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-zinc-900"><span class="text-xs text-zinc-400 font-mono">next.config.js</span><button class="p-1.5 rounded-md bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700 transition-colors" aria-label="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="relative"><pre class="p-4 overflow-x-auto text-[13px] leading-6"><code class="language-javascript"><span class="block ">/** @type {import(&#x27;next&#x27;).NextConfig} */</span><span class="block ">const nextConfig = {</span><span class="block bg-blue-500/10 -mx-4 px-4 border-l-2 border-blue-500">  output: &#x27;export&#x27;,  // ← 添加这一行</span><span class="block ">}</span><span class="block ">
2</span><span class="block ">module.exports = nextConfig</span></code></pre></div></div><h4 class="text-base font-semibold text-zinc-900 mt-6 mb-4">2. 执行构建</h4><div class="group relative rounded-lg border border-zinc-200 bg-zinc-950 overflow-hidden my-6 text-sm text-zinc-50"><div class="flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-zinc-900"><span class="text-xs text-zinc-400 font-mono">Terminal</span><button class="p-1.5 rounded-md bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700 transition-colors" aria-label="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="relative"><pre class="p-4 overflow-x-auto text-[13px] leading-6"><code class="language-bash"><span class="block ">npm run build</span></code></pre></div></div><p>构建完成后,静态文件会输出到 <code>out</code> 文件夹。</p><h4 class="text-base font-semibold text-zinc-900 mt-6 mb-4">3. 上传 out 文件夹</h4><p>把 <code>out</code> 文件夹拖拽到上传区域即可。</p><div class="my-4 rounded-lg border border-purple-200 bg-purple-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-alert w-4 h-4" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><line x1="12" x2="12" y1="8" y2="12"></line>
2<line x1="12" x2="12.01" y1="16" y2="16"></line></svg></div><div class="text-sm text-zinc-700"><p class="font-semibold mb-1">功能限制</p><div class="[&amp;&gt;p]:m-0">使用静态导出后,以下 Next.js 功能将<strong>不可用</strong>:<ul class="mt-2 mb-0"><li>API Routes(/api/*)</li><li>服务端渲染 (getServerSideProps)</li><li>增量静态再生 (ISR)</li><li>中间件 (Middleware)</li></ul></div></div></div></div><h3 id="static-html" class="mt-12 scroll-mt-28">纯 HTML 网页</h3><p>如果你的网页是手写的 HTML/CSS/JS,不需要任何构建步骤。直接把包含<!-- --> <code>index.html</code> 的文件夹拖拽上传即可。</p><h3 id="ssg" class="mt-12 scroll-mt-28">Hugo / Hexo 博客</h3><p>这两个是流行的静态博客生成器。</p><h4 class="text-base font-semibold text-zinc-900 mt-6 mb-4">Hugo</h4><div class="group relative rounded-lg border border-zinc-200 bg-zinc-950 overflow-hidden my-6 text-sm text-zinc-50"><div class="flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-zinc-900"><span class="text-xs text-zinc-400 font-mono">Terminal</span><button class="p-1.5 rounded-md bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700 transition-colors" aria-label="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="relative"><pre class="p-4 overflow-x-auto text-[13px] leading-6"><code class="language-bash"><span class="block ">hugo</span></code></pre></div></div><p>生成的文件在 <code>public</code> 文件夹。</p><h4 class="text-base font-semibold text-zinc-900 mt-6 mb-4">Hexo</h4><div class="group relative rounded-lg border border-zinc-200 bg-zinc-950 overflow-hidden my-6 text-sm text-zinc-50"><div class="flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-zinc-900"><span class="text-xs text-zinc-400 font-mono">Terminal</span><button class="p-1.5 rounded-md bg-zinc-800 text-zinc-400 hover:text-white hover:bg-zinc-700 transition-colors" aria-label="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="relative"><pre class="p-4 overflow-x-auto text-[13px] leading-6"><code class="language-bash"><span class="block ">hexo generate</span></code></pre></div></div><p>生成的文件同样在 <code>public</code> <!-- -->文件夹。上传这个文件夹即可。</p></section><section id="domains" class="mb-20 scroll-mt-28"><h2>自定义域名</h2><p>默认情况下,你的网站地址是 <code>xxx.upma.site</code>。如果你有自己的域名(比如 <code>www.example.com</code>),可以把它绑定到你的上码项目,这样访问你的域名就能看到你的网站。</p><div class="my-4 rounded-lg border border-blue-200 bg-blue-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info w-4 h-4" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></div><div class="text-sm text-zinc-700"><p class="font-semibold mb-1">什么是域名?</p><div class="[&amp;&gt;p]:m-0">域名就是网站的地址,比如 <code>baidu.com</code>、<code>taobao.com</code>。你可以在阿里云、腾讯云、GoDaddy 等平台购买自己的域名。</div></div></div></div><h3 id="add-domain" class="scroll-mt-28">第 1 步:添加域名</h3><ol><li>进入你的项目设置页面</li><li>点击「域名」选项卡</li><li>点击「绑定域名」按钮</li><li>输入你的域名(比如 <code>www.example.com</code>)</li><li>点击确认</li></ol><div class="mt-4 not-prose"><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50" style="aspect-ratio:800/500"><img alt="上传区域" loading="lazy" width="800" height="500" decoding="async" data-nimg="1" class="w-full h-full object-cover" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-domain-verified.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-domain-verified.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-domain-verified.png&amp;w=1920&amp;q=75"/></div></div><h3 id="dns-config" class="scroll-mt-28">第 2 步:配置 DNS</h3><p>添加域名后,系统会给你两条 DNS 记录需要配置。你需要登录你购买域名的平台(比如阿里云),找到「域名解析」或「DNS 设置」,添加这两条记录。</p><div class="not-prose my-6 overflow-hidden rounded-lg border border-zinc-200"><table class="w-full text-sm"><thead class="bg-zinc-50 border-b border-zinc-200"><tr><th class="text-left py-3 px-4 font-semibold text-zinc-900">记录类型</th><th class="text-left py-3 px-4 font-semibold text-zinc-900">主机记录</th><th class="text-left py-3 px-4 font-semibold text-zinc-900">记录值</th><th class="text-left py-3 px-4 font-semibold text-zinc-900">说明</th></tr></thead><tbody class="divide-y divide-zinc-100"><tr><td class="py-3 px-4 font-mono text-blue-600 font-medium">CNAME</td><td class="py-3 px-4 font-mono text-zinc-600">www</td><td class="py-3 px-4 font-mono text-zinc-900">cname.upma.site</td><td class="py-3 px-4 text-zinc-500">让域名指向上码服务器</td></tr><tr><td class="py-3 px-4 font-mono text-blue-600 font-medium">TXT</td><td class="py-3 px-4 font-mono text-zinc-600">_upma-challenge</td><td class="py-3 px-4 font-mono text-zinc-900">upma-verify=xxx...</td><td class="py-3 px-4 text-zinc-500">验证域名所有权</td></tr></tbody></table></div><div class="mt-4 not-prose"><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm"><img alt="上传区域" loading="lazy" width="800" height="500" decoding="async" data-nimg="1" class="w-full h-auto" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-domain-verified2.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-domain-verified2.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-domain-verified2.png&amp;w=1920&amp;q=75"/></div></div>
2<div class="my-4 rounded-lg border border-emerald-200 bg-emerald-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb w-4 h-4" aria-hidden="true"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg></div><div class="text-sm text-zinc-700"><p class="font-semibold mb-1">主机记录填什么?</p><div class="[&amp;&gt;p]:m-0"><ul class="mt-2 mb-0"><li>如果你绑定的是 <code>www.example.com</code>,主机记录填<!-- --> <code>www</code></li><li>如果你绑定的是 <code>example.com</code>(裸域名),主机记录填 <code>@</code></li><li>如果你绑定的是 <code>blog.example.com</code>,主机记录填<!-- --> <code>blog</code></li></ul></div></div></div></div><h3 id="ssl" class="scroll-mt-28">第 3 步:等待验证</h3><p>DNS 配置后需要等待生效,通常 5-30 分钟,最长可能需要 48 小时(取决于你的域名服务商)。</p><p>验证成功后,域名状态会变成「已连接」,系统会自动为你的域名申请免费的 SSL 证书,让网站支持 <code>https://</code> 安全访问。</p></section><section id="updating" class="mb-20 scroll-mt-28"><h2>如何更新网站</h2><div class="not-prose mb-6"><div class="my-4 rounded-lg border border-blue-200 bg-blue-50 p-4"><div class="flex gap-3"><div class="flex-shrink-0 mt-0.5 text-zinc-600"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info w-4 h-4" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></div><div class="text-sm text-zinc-700"><p class="font-semibold mb-1">核心逻辑</p><div class="[&amp;&gt;p]:m-0">在上码 (Upma),更新网站的方式和第一次部署<strong>完全一样</strong>。你只需要再次上传新的文件,系统会自动把它们发布为各种的新版本。</div></div></div></div></div><ul class="list-none pl-0 space-y-4"><li class="flex gap-4"><div class="flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1">1</div><div class="text-stone-700 leading-relaxed"><strong>修改你的代码</strong><p class="mt-2 text-base">在你的电脑上修改代码(比如改了文字、换了图片),并保存。</p></div></li><li class="flex gap-4"><div class="flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1">2</div><div class="text-stone-700 leading-relaxed"><strong>构建(如果是框架项目)</strong><p class="mt-2 text-base">如果你用的是 React/Vue 等框架,记得先运行<!-- --> <code>npm run build</code> 生成最新的 <code>dist</code> <!-- -->目录。</p></div></li><li class="flex gap-4"><div class="flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1">3</div><div class="text-stone-700 leading-relaxed"><strong>进入项目控制台</strong><p class="mt-2 text-base">登录上码,点击你的项目卡片进入项目详情页。</p></div></li><li class="flex gap-4"><div class="flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1">4</div><div class="text-stone-700 leading-relaxed"><strong>上传新版本</strong><p class="mt-2 text-base">切换到 <strong>「页面」</strong> 选项卡,点击右上角的<!-- --> <strong>「更新项目」</strong> <!-- -->按钮,选择或拖拽你的新文件夹。</p></div></li><div class="mt-4 not-prose"><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm"><img alt="更新项目" loading="lazy" width="800" height="500" decoding="async" data-nimg="1" class="w-full h-auto" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-update-project.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-update-project.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-update-project.png&amp;w=1920&amp;q=75"/></div></div><div class="mt-4 not-prose"><div class="my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm"><img alt="更新项目" loading="lazy" width="800" height="500" decoding="async" data-nimg="1" class="w-full h-auto" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-update-project2.png&amp;w=828&amp;q=75 1x, /_next/image?url=%2Fimages%2Fdocs%2Fdocs-update-project2.png&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fdocs%2Fdocs-update-project2.png&amp;w=1920&amp;q=75"/></div></div></ul><p>就是这么简单!新的版本会作为 v2, v3... 自动记录,你可以随时在版本历史中查看或回滚。</p></section><section id="faq" class="mb-16"><h2>常见问题</h2><div class="not-prose mt-6 space-y-3"><details class="group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors">我没有编程基础,能用上码吗?<svg class="w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4">完全可以!如果你只是想发布一个简单的网页(比如用 WordPress 导出的静态页面,或者别人给你的 HTML 文件),只需要拖拽上传就行,不需要任何编程知识。</div></details>
2<details class="group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors">部署后访问显示 404 Not Found?<svg class="w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4">这通常是因为你上传的文件夹里没有 index.html 文件,或者 index.html 在子文件夹里。请确保 index.html 在文件夹的根目录。如果你上传的是 dist 文件夹,请直接拖拽 dist 文件夹本身,而不是它的父目录。</div></details><details class="group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors">React/Vue 路由刷新后 404?<svg class="w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4">这是单页应用 (SPA) 的特性。上码默认会将未匹配的路由回退到 index.html,大多数情况下应该能正常工作。如果仍有问题,请检查你的路由配置是否使用了 HTML5 History 模式。</div></details><details class="group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors">上传速度很慢怎么办?<svg class="w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4">上传速度取决于你的网络状况和文件大小。建议:1) 删除不需要的大文件(如 node_modules);2) 压缩图片尺寸;3) 使用更快的网络。如果是更新已有项目,上码会自动增量上传,只上传修改过的文件。</div></details><details class="group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors">支持上传视频或大文件吗?<svg class="w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4">支持,单文件最大 100MB。但建议将大型视频托管在专业视频平台(如 B 站、YouTube)并嵌入你的网页,以节省流量。</div></details><details class="group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors">如何更新网站内容?<svg class="w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4">进入项目详情页 -&gt; 页面 -&gt; 点击「更新项目」,上传新的文件夹即可。新版本会自动覆盖旧版本,且支持秒级回滚。</div></details>
2<details class="group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors">可以设置访问密码吗?<svg class="w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4">可以!在项目设置里开启「密码保护」功能,设置一个密码,访客需要输入正确密码才能查看网站内容。适合内部资料、测试环境等场景。</div></details></div></section></div><div class="mt-16 pt-8 border-t border-zinc-200 flex justify-between"><div></div><a class="group flex items-center gap-2 text-sm font-medium text-zinc-600 hover:text-zinc-900 transition-colors" href="/explore">前往探索广场<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right w-4 h-4 group-hover:translate-x-0.5 transition-transform" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div></main></div></div></div><!--$--><!--/$--></main><footer class="relative overflow-hidden border-t border-white/10 bg-[#020202] pt-12 pb-8 sm:pt-16 lg:pt-20 lg:pb-10"><div aria-hidden="true" class="absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-blue-400/40 to-transparent"></div><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="mb-10 flex flex-col gap-8 lg:mb-16 lg:flex-row lg:gap-12"><div class="flex flex-col items-center gap-5 border-b border-white/10 pb-8 text-center sm:items-start sm:text-left lg:w-1/4 lg:border-b-0 lg:pb-0"><svg width="160" height="32" viewBox="0 0 160 40" fill="none" xmlns="http://www.w3.org/2000/svg" class="sm:-ml-4" aria-label="上码 Logo"><defs><linearGradient id="circle_bg" x1="0" y1="0" x2="40" y2="40" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#1e1b4b"></stop> <stop offset="100%" stop-color="#2e1065"></stop> </linearGradient><linearGradient id="triangle_gradient" x1="20" y1="10" x2="20" y2="32" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#6366f1"></stop> <stop offset="50%" stop-color="#8b5cf6"></stop> <stop offset="100%" stop-color="#ec4899"></stop> </linearGradient><linearGradient id="dark_text_gradient" x1="0" y1="0" x2="0" y2="100%" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#dedede"></stop><stop offset="100%" stop-color="#a0aec0"></stop></linearGradient><filter id="text_shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="1" stdDeviation="1" flood-color="#000000" flood-opacity="0.5"></feDropShadow></filter></defs><g><circle cx="20" cy="20" r="20" fill="url(#circle_bg)"></circle><circle cx="20" cy="20" r="19" stroke="white" stroke-opacity="0.1" stroke-width="1"></circle><path d="M20 11L30 29H10L20 11Z" fill="url(#triangle_gradient)" class="drop-shadow-sm"></path></g><g transform="translate(48, 0)"><text x="0" y="29" fill="url(#dark_text_gradient)" filter="url(#text_shadow)" font-size="24" font-weight="900" font-family="PingFang SC, Microsoft YaHei, system-ui, sans-serif" letter-spacing="0.02em">上码</text><g transform="translate(54, 0)"><text x="0" y="17" fill="url(#triangle_gradient)" font-size="12" font-weight="900" font-family="Manrope, Inter, system-ui, sans-serif" letter-spacing="0.1em" style="text-transform:uppercase">up</text><text x="0" y="31" font-size="12" font-family="Manrope, Inter, system-ui, sans-serif" font-weight="900" letter-spacing="0.1em"><tspan fill="url(#triangle_gradient)" style="text-transform:uppercase">ma</tspan><tspan fill="white" fill-opacity="0.4" font-weight="600" font-size="10" dx="2">.cn</tspan></text></g></g></svg><p class="max-w-sm text-sm leading-relaxed text-gray-400 sm:max-w-xs">专为 AI 创作者打造的一站式代码发布平台。<br/>无需运维,专注于你的创意。</p><a href="mailto:[email protected]" class="inline-flex min-h-11 items-center gap-2 rounded-full border border-white/10 bg-white/[0.03] px-4 text-sm font-medium text-gray-300 transition-colors hover:border-white/20 hover:bg-white/[0.06] hover:text-white"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail h-4 w-4" aria-hidden="true"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7"></path><rect x="2" y="4" width="20" height="16" rx="2"></rect></svg>[email protected]</a></div><nav class="divide-y divide-white/10 rounded-lg border border-white/10 bg-white/[0.02] md:hidden" aria-label="页脚导航"><details class="group" open=""><summary class="flex min-h-12 cursor-pointer list-none items-center justify-between px-4 text-sm font-semibold text-gray-100 [&amp;::-webkit-details-marker]:hidden"><span>产品功能</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 text-gray-500 transition-transform group-open:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="grid grid-cols-2 gap-x-4 gap-y-1 px-4 pb-4 text-sm"><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/features/global-cdn"><span>全球 CDN</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/features/free-ssl"><span>免费 SSL</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/features/custom-domains"><span>自定义域名</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/features/password-protection"><span>密码保护</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/features/instant-rollback"><span>秒级回滚</span></a></li></ul></details>
2<details class="group"><summary class="flex min-h-12 cursor-pointer list-none items-center justify-between px-4 text-sm font-semibold text-gray-100 [&amp;::-webkit-details-marker]:hidden"><span>托管场景</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 text-gray-500 transition-transform group-open:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="grid grid-cols-2 gap-x-4 gap-y-1 px-4 pb-4 text-sm"><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/personal-website"><span>个人网站托管</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/student-hosting"><span>学生作业托管</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/resume"><span>简历托管</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/portfolio"><span>作品集托管</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/link-in-bio"><span>导航页托管</span></a></li></ul></details><details class="group"><summary class="flex min-h-12 cursor-pointer list-none items-center justify-between px-4 text-sm font-semibold text-gray-100 [&amp;::-webkit-details-marker]:hidden"><span>框架部署</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 text-gray-500 transition-transform group-open:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="grid grid-cols-2 gap-x-4 gap-y-1 px-4 pb-4 text-sm"><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/deploy-html"><span>HTML 部署</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/deploy-react"><span>React 部署</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/deploy-vue"><span>Vue 部署</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/host-pdf"><span>PDF 托管</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/deploy-deepseek"><span>DeepSeek 部署</span></a></li></ul></details><details class="group"><summary class="flex min-h-12 cursor-pointer list-none items-center justify-between px-4 text-sm font-semibold text-gray-100 [&amp;::-webkit-details-marker]:hidden"><span>开发工具</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 text-gray-500 transition-transform group-open:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="grid grid-cols-2 gap-x-4 gap-y-1 px-4 pb-4 text-sm"><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/tools/json-formatter"><span>JSON 格式化</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/tools/regex"><span>正则测试</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/tools/ip"><span>IP 查询</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/tools/ping"><span>Ping 检测</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors font-medium text-blue-300 hover:text-blue-200" href="/tools"><span>查看全部</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></li></ul></details>
2<details class="group"><summary class="flex min-h-12 cursor-pointer list-none items-center justify-between px-4 text-sm font-semibold text-gray-100 [&amp;::-webkit-details-marker]:hidden"><span>资源支持</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 text-gray-500 transition-transform group-open:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="grid grid-cols-2 gap-x-4 gap-y-1 px-4 pb-4 text-sm"><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/pricing"><span>价格</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/docs"><span>使用指南</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/blog"><span>博客</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/legal/privacy"><span>隐私</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/legal/terms"><span>条款</span></a></li></ul></details></nav><nav class="hidden text-left md:grid md:grid-cols-3 md:gap-x-10 md:gap-y-10 lg:ml-auto lg:grid-cols-5 lg:gap-x-8" aria-label="页脚导航"><div class="min-w-0"><h3 class="mb-4 text-sm font-semibold text-gray-200">产品功能</h3><ul class="space-y-2 text-sm"><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/features/global-cdn"><span>全球 CDN</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/features/free-ssl"><span>免费 SSL</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/features/custom-domains"><span>自定义域名</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/features/password-protection"><span>密码保护</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/features/instant-rollback"><span>秒级回滚</span></a></li></ul></div><div class="min-w-0"><h3 class="mb-4 text-sm font-semibold text-gray-200">托管场景</h3><ul class="space-y-2 text-sm"><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/personal-website"><span>个人网站托管</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/student-hosting"><span>学生作业托管</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/resume"><span>简历托管</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/portfolio"><span>作品集托管</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/link-in-bio"><span>导航页托管</span></a></li></ul></div><div class="min-w-0"><h3 class="mb-4 text-sm font-semibold text-gray-200">框架部署</h3><ul class="space-y-2 text-sm"><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/deploy-html"><span>HTML 部署</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/deploy-react"><span>React 部署</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/deploy-vue"><span>Vue 部署</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/host-pdf"><span>PDF 托管</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/deploy/deploy-deepseek"><span>DeepSeek 部署</span></a></li></ul></div><div class="min-w-0"><h3 class="mb-4 text-sm font-semibold text-gray-200">开发工具</h3><ul class="space-y-2 text-sm"><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/tools/json-formatter"><span>JSON 格式化</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/tools/regex"><span>正则测试</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/tools/ip"><span>IP 查询</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/tools/ping"><span>Ping 检测</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors font-medium text-blue-300 hover:text-blue-200" href="/tools"><span>查看全部</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></li></ul></div><div class="min-w-0"><h3 class="mb-4 text-sm font-semibold text-gray-200">资源支持</h3><ul class="space-y-2 text-sm"><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/pricing"><span>价格</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/docs"><span>使用指南</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/blog"><span>博客</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/legal/privacy"><span>隐私</span></a></li><li><a class="inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white" href="/legal/terms"><span>条款</span></a></li></ul></div></nav></div><div class="flex flex-col items-center justify-between gap-5 border-t border-white/10 pt-6 sm:pt-8 md:flex-row"><div class="flex flex-col items-center gap-2 text-center text-sm text-gray-600 sm:flex-row sm:gap-4 sm:text-left"><a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer" class="hover:text-gray-400 transition-colors">粤ICP备2023011358号-3</a><p>© 2025 UpMa. All rights reserved.</p></div><div class="flex items-center gap-2"><a class="grid h-10 w-10 place-items-center rounded-full border border-white/10 bg-white/[0.03] text-gray-500 transition-colors duration-200 hover:border-white/20 hover:bg-white/[0.06] hover:text-white" aria-label="Twitter" href="#"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"></path></svg></a><a class="grid h-10 w-10 place-items-center rounded-full border border-white/10 bg-white/[0.03] text-gray-500 transition-colors duration-200 hover:border-white/20 hover:bg-white/[0.06] hover:text-white" aria-label="GitHub" href="#"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158
2-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"></path></svg></a><a class="grid h-10 w-10 place-items-center rounded-full border border-white/10 bg-white/[0.03] text-gray-500 transition-colors duration-200 hover:border-white/20 hover:bg-white/[0.06] hover:text-white" aria-label="Discord" href="#"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path fill-rule="evenodd" d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.5151.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.419-2.1568 2.419zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.419-2.1568 2.419z" clip-rule="evenodd"></path></svg></a></div></div></div></footer></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section>
2<script src="/_next/static/chunks/de81b9ff91d90478.js" id="_R_" async=""></script>
2<script>(self.__next_f=self.__next_f||[]).push([0])</script>
2<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[756132,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\",\"/_next/static/chunks/fe96ba40e9e8ef1d.js\",\"/_next/static/chunks/db81d66fdcac06eb.js\",\"/_next/static/chunks/61148fb845518522.js\"],\"default\"]\n4:I[886281,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\",\"/_next/static/chunks/fe96ba40e9e8ef1d.js\",\"/_next/static/chunks/db81d66fdcac06eb.js\",\"/_next/static/chunks/61148fb845518522.js\"],\"PreviewCacheProvider\"]\n5:I[92337,[\"/_next/static/chunks/b2b9122c1b63621e.js\",\"/_next/static/chunks/395e51502c352751.js\"],\"default\"]\n6:I[64226,[\"/_next/static/chunks/b2b9122c1b63621e.js\",\"/_next/static/chunks/395e51502c352751.js\"],\"default\"]\n16:I[954354,[],\"default\"]\n:HL[\"/_next/static/chunks/d35f63c56af26677.css\",\"style\"]\n:HL[\"/_next/static/chunks/a4c94fca0c700d6c.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.29207c2f.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
2<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"snPJzlrBIDHApgrpBbW3-\",\"c\":[\"\",\"docs?_rsc=dj3qb\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(marketing)\",{\"children\":[\"docs\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/d35f63c56af26677.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/a4c94fca0c700d6c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/733d483dbb25b2a8.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/e61992e38fd16c06.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/fe96ba40e9e8ef1d.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/db81d66fdcac06eb.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/61148fb845518522.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"div\",null,{\"className\":\"bg-[#050505] text-white\",\"children\":[[\"$\",\"div\",null,{\"className\":\"fixed inset-0 pointer-events-none overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute top-0 left-1/4 w-96 h-96 bg-purple-600/30 rounded-full mix-blend-multiply filter blur-[128px] opacity-24 animate-blob\"}],[\"$\",\"div\",null,{\"className\":\"absolute top-0 right-1/4 w-96 h-96 bg-blue-600/30 rounded-full mix-blend-multiply filter blur-[128px] opacity-24 animate-blob animation-delay-2000\"}],[\"$\",\"div\",null,{\"className\":\"absolute -bottom-32 left-1/3 w-96 h-96 bg-pink-600/30 rounded-full mix-blend-multiply filter blur-[128px] opacity-24 animate-blob animation-delay-3000\"}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 bg-[url('/noise.svg')] opacity-26\"}]]}],[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"main\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"footer\",null,{\"className\":\"relative overflow-hidden border-t border-white/10 bg-[#020202] pt-12 pb-8 sm:pt-16 lg:pt-20 lg:pb-10\",\"children\":[[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-blue-400/40 to-transparent\"}],[\"$\",\"div\",null,{\"className\":\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-10 flex flex-col gap-8 lg:mb-16 lg:flex-row lg:gap-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center gap-5 border-b border-white/10 pb-8 text-center sm:items-start sm:text-left lg:w-1/4 lg:border-b-0 lg:pb-0\",\"children\":[[\"$\",\"svg\",null,{\"width\":160,\"height\"
2:32,\"viewBox\":\"0 0 160 40\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"className\":\"sm:-ml-4\",\"aria-label\":\"上码 Logo\",\"children\":[[\"$\",\"defs\",null,{\"children\":[[\"$\",\"linearGradient\",null,{\"id\":\"circle_bg\",\"x1\":\"0\",\"y1\":\"0\",\"x2\":\"40\",\"y2\":\"40\",\"gradientUnits\":\"userSpaceOnUse\",\"children\":[[\"$\",\"stop\",null,{\"offset\":\"0%\",\"stopColor\":\"#1e1b4b\"}],\" \",[\"$\",\"stop\",null,{\"offset\":\"100%\",\"stopColor\":\"#2e1065\"}],\" \"]}],[\"$\",\"linearGradient\",null,{\"id\":\"triangle_gradient\",\"x1\":\"20\",\"y1\":\"10\",\"x2\":\"20\",\"y2\":\"32\",\"gradientUnits\":\"userSpaceOnUse\",\"children\":[\"$L7\",\" \",\"$L8\",\" \",\"$L9\",\" \"]}],\"$La\",\"$Lb\"]}],\"$Lc\",\"$Ld\"]}],\"$Le\",\"$Lf\"]}],\"$L10\",\"$L11\"]}],\"$L12\"]}]]}]]}]]}],{\"children\":[\"$L13\",{\"children\":[\"$L14\",{},null,false,false]},null,false,false]},null,false,false]},null,false,false],\"$L15\",false]],\"m\":\"$undefined\",\"G\":[\"$16\",[]],\"S\":true}\n"])</script>
2<script>self.__next_f.push([1,"17:I[8331,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\",\"/_next/static/chunks/fe96ba40e9e8ef1d.js\",\"/_next/static/chunks/db81d66fdcac06eb.js\",\"/_next/static/chunks/61148fb845518522.js\",\"/_next/static/chunks/ac22bed2698caa30.js\"],\"\"]\n23:I[505420,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\",\"/_next/static/chunks/fe96ba40e9e8ef1d.js\",\"/_next/static/chunks/db81d66fdcac06eb.js\",\"/_next/static/chunks/61148fb845518522.js\",\"/_next/static/chunks/ac22bed2698caa30.js\"],\"DocsSidebar\"]\n29:I[802718,[\"/_next/static/chunks/b2b9122c1b63621e.js\",\"/_next/static/chunks/395e51502c352751.js\"],\"ViewportBoundary\"]\n2b:I[802718,[\"/_next/static/chunks/b2b9122c1b63621e.js\",\"/_next/static/chunks/395e51502c352751.js\"],\"MetadataBoundary\"]\n2c:\"$Sreact.suspense\"\n7:[\"$\",\"stop\",null,{\"offset\":\"0%\",\"stopColor\":\"#6366f1\"}]\n8:[\"$\",\"stop\",null,{\"offset\":\"50%\",\"stopColor\":\"#8b5cf6\"}]\n9:[\"$\",\"stop\",null,{\"offset\":\"100%\",\"stopColor\":\"#ec4899\"}]\na:[\"$\",\"linearGradient\",null,{\"id\":\"dark_text_gradient\",\"x1\":\"0\",\"y1\":\"0\",\"x2\":\"0\",\"y2\":\"100%\",\"gradientUnits\":\"userSpaceOnUse\",\"children\":[[\"$\",\"stop\",null,{\"offset\":\"0%\",\"stopColor\":\"#dedede\"}],[\"$\",\"stop\",null,{\"offset\":\"100%\",\"stopColor\":\"#a0aec0\"}]]}]\nb:[\"$\",\"filter\",null,{\"id\":\"text_shadow\",\"x\":\"-20%\",\"y\":\"-20%\",\"width\":\"140%\",\"height\":\"140%\",\"children\":[\"$\",\"feDropShadow\",null,{\"dx\":\"0\",\"dy\":\"1\",\"stdDeviation\":\"1\",\"floodColor\":\"#000000\",\"floodOpacity\":0.5}]}]\nc:[\"$\",\"g\",null,{\"children\":[[\"$\",\"circle\",null,{\"cx\":\"20\",\"cy\":\"20\",\"r\":\"20\",\"fill\":\"url(#circle_bg)\"}],[\"$\",\"circle\",null,{\"cx\":\"20\",\"cy\":\"20\",\"r\":\"19\",\"stroke\":\"white\",\"strokeOpacity\":\"0.1\",\"strokeWidth\":\"1\"}],[\"$\",\"path\",null,{\"d\":\"M20 11L30 29H10L20 11Z\",\"fill\":\"url(#triangle_gradient)\",\"className\":\"drop-shadow-sm\"}]]}]\nd:[\"$\",\"g\",null,{\"transform\":\"translate(48, 0)\",\"children\":[[\"$\",\"text\",null,{\"x\":\"0\",\"y\":\"29\",\"fill\":\"url(#dark_text_gradient)\",\"filter\":\"url(#text_shadow)\",\"fontSize\":\"24\",\"fontWeight\":\"900\",\"fontFamily\":\"PingFang SC, Microsoft YaHei, system-ui, sans-serif\",\"letterSpacing\":\"0.02em\",\"children\":\"上码\"}],[\"$\",\"g\",null,{\"transform\":\"translate(54, 0)\",\"children\":[[\"$\",\"text\",null,{\"x\":\"0\",\"y\":\"17\",\"fill\":\"url(#triangle_gradient)\",\"fontSize\":\"12\",\"fontWeight\":\"900\",\"fontFamily\":\"Manrope, Inter, system-ui, sans-serif\",\"letterSpacing\":\"0.1em\",\"style\":{\"textTransform\":\"uppercase\"},\"children\":\"up\"}],[\"$\",\"text\",null,{\"x\":\"0\",\"y\":\"31\",\"fontSize\":\"12\",\"fontFamily\":\"Manrope, Inter, system-ui, sans-serif\",\"fontWeight\":\"900\",\"letterSpacing\":\"0.1em\",\"children\":[[\"$\",\"tspan\",null,{\"fill\":\"url(#triangle_gradient)\",\"style\":{\"textTransform\":\"uppercase\"},\"children\":\"ma\"}],[\"$\",\"tspan\",null,{\"fill\":\"white\",\"fillOpacity\":\"0.4\",\"fontWeight\":\"600\",\"fontSize\":\"10\",\"dx\":\"2\",\"children\":\".cn\"}]]}]]}]]}]\ne:[\"$\",\"p\",null,{\"className\":\"max-w-sm text-sm leading-relaxed text-gray-400 sm:max-w-xs\",\"children\":[\"专为 AI 创作者打造的一站式代码发布平台。\",[\"$\",\"br\",null,{}],\"无需运维,专注于你的创意。\"]}]\nf:[\"$\",\"a\",null,{\"href\":\"mailto:[email protected]\",\"className\":\"inline-flex min-h-11 items-center gap-2 rounded-full border border-white/10 bg-white/[0.03] px-4 text-sm font-medium text-gray-300 transition-colors hover:border-white/20 hover:bg-white/[0.06] hover:text-white\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-mail h-4 w-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"132q7q\",{\"d\":\"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"}],[\"$\",\"rect\",\"izxlao\",{\"x\":\"2\",\"y\":\"4\",\"width\":\"20\",\"height\"
2:\"16\",\"rx\":\"2\"}],\"$undefined\"]}],\"[email protected]\"]}]\n"])</script>
2<script>self.__next_f.push([1,"10:[\"$\",\"nav\",null,{\"className\":\"divide-y divide-white/10 rounded-lg border border-white/10 bg-white/[0.02] md:hidden\",\"aria-label\":\"页脚导航\",\"children\":[[\"$\",\"details\",\"产品功能\",{\"className\":\"group\",\"open\":true,\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex min-h-12 cursor-pointer list-none items-center justify-between px-4 text-sm font-semibold text-gray-100 [\u0026::-webkit-details-marker]:hidden\",\"children\":[[\"$\",\"span\",null,{\"children\":\"产品功能\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-down h-4 w-4 text-gray-500 transition-transform group-open:rotate-180\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"qrunsl\",{\"d\":\"m6 9 6 6 6-6\"}],\"$undefined\"]}]]}],[\"$\",\"ul\",null,{\"className\":\"grid grid-cols-2 gap-x-4 gap-y-1 px-4 pb-4 text-sm\",\"children\":[[\"$\",\"li\",\"全球 CDN\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/features/global-cdn\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"全球 CDN\"}],null]}]}],[\"$\",\"li\",\"免费 SSL\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/features/free-ssl\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"免费 SSL\"}],null]}]}],[\"$\",\"li\",\"自定义域名\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/features/custom-domains\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"自定义域名\"}],null]}]}],[\"$\",\"li\",\"密码保护\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/features/password-protection\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"密码保护\"}],null]}]}],[\"$\",\"li\",\"秒级回滚\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/features/instant-rollback\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"秒级回滚\"}],null]}]}]]}]]}],[\"$\",\"details\",\"托管场景\",{\"className\":\"group\",\"open\":false,\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex min-h-12 cursor-pointer list-none items-center justify-between px-4 text-sm font-semibold text-gray-100 [\u0026::-webkit-details-marker]:hidden\",\"children\":[[\"$\",\"span\",null,{\"children\":\"托管场景\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-down h-4 w-4 text-gray-500 transition-transform group-open:rotate-180\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"qrunsl\",{\"d\":\"m6 9 6 6 6-6\"}],\"$undefined\"]}]]}],[\"$\",\"ul\",null,{\"className\":\"grid grid-cols-2 gap-x-4 gap-y-1 px-4 pb-4 text-sm\",\"children\":[[\"$\",\"li\",\"个人网站托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/personal-website\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"个人网站托管\"}],null]}]}],[\"$\",\"li\",\"学生作业托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/student-hosting\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"学生作业托管\"}],null]}]}],[\"$\",\"li\",\"简历托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/resume\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"简历托管\"}],null]}]}],[\"$\",\"li\",\"作品集托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/portfolio\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"作品集托管\"}],null]}]}],[\"$\",\"li\",\"导航页托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/link-in-bio\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[\"$L18\",null]}]}]]}]]}],\"$L19\",\"$L1a\",\"$L1b\"]}]\n"])</script>
2<script>self.__next_f.push([1,"11:[\"$\",\"nav\",null,{\"className\":\"hidden text-left md:grid md:grid-cols-3 md:gap-x-10 md:gap-y-10 lg:ml-auto lg:grid-cols-5 lg:gap-x-8\",\"aria-label\":\"页脚导航\",\"children\":[[\"$\",\"div\",\"产品功能\",{\"className\":\"min-w-0\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-4 text-sm font-semibold text-gray-200\",\"children\":\"产品功能\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2 text-sm\",\"children\":[[\"$\",\"li\",\"全球 CDN\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/features/global-cdn\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"全球 CDN\"}],null]}]}],[\"$\",\"li\",\"免费 SSL\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/features/free-ssl\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"免费 SSL\"}],null]}]}],[\"$\",\"li\",\"自定义域名\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/features/custom-domains\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"自定义域名\"}],null]}]}],[\"$\",\"li\",\"密码保护\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/features/password-protection\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"密码保护\"}],null]}]}],[\"$\",\"li\",\"秒级回滚\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/features/instant-rollback\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"秒级回滚\"}],null]}]}]]}]]}],[\"$\",\"div\",\"托管场景\",{\"className\":\"min-w-0\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-4 text-sm font-semibold text-gray-200\",\"children\":\"托管场景\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2 text-sm\",\"children\":[[\"$\",\"li\",\"个人网站托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/personal-website\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"个人网站托管\"}],null]}]}],[\"$\",\"li\",\"学生作业托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/student-hosting\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"学生作业托管\"}],null]}]}],[\"$\",\"li\",\"简历托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/resume\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"简历托管\"}],null]}]}],[\"$\",\"li\",\"作品集托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/portfolio\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"作品集托管\"}],null]}]}],[\"$\",\"li\",\"导航页托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/link-in-bio\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"导航页托管\"}],null]}]}]]}]]}],[\"$\",\"div\",\"框架部署\",{\"className\":\"min-w-0\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-4 text-sm font-semibold text-gray-200\",\"children\":\"框架部署\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2 text-sm\",\"children\":[[\"$\",\"li\",\"HTML 部署\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/deploy-html\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"HTML 部署\"}],null]}]}],[\"$\",\"li\",\"React 部署\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/deploy-react\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"React 部署\"}],null]}]}],[\"$\",\"li\",\"Vue 部署\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/deploy-vue\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[\"$L1c\",null]}]}],\"$L1d\",\"$L1e\"]}]]}],\"$L1f\",\"$L20\"]}]\n"])</script>
2<script>self.__next_f.push([1,"21:T4eb,M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.5151.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.419-2.1568 2.419zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.419-2.1568 2.419z"])</script>
2<script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center justify-between gap-5 border-t border-white/10 pt-6 sm:pt-8 md:flex-row\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center gap-2 text-center text-sm text-gray-600 sm:flex-row sm:gap-4 sm:text-left\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://beian.miit.gov.cn/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"hover:text-gray-400 transition-colors\",\"children\":\"粤ICP备2023011358号-3\"}],[\"$\",\"p\",null,{\"children\":\"© 2025 UpMa. All rights reserved.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L17\",null,{\"href\":\"#\",\"className\":\"grid h-10 w-10 place-items-center rounded-full border border-white/10 bg-white/[0.03] text-gray-500 transition-colors duration-200 hover:border-white/20 hover:bg-white/[0.06] hover:text-white\",\"aria-label\":\"Twitter\",\"children\":[\"$\",\"svg\",null,{\"className\":\"w-5 h-5\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"path\",null,{\"d\":\"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84\"}]}]}],[\"$\",\"$L17\",null,{\"href\":\"#\",\"className\":\"grid h-10 w-10 place-items-center rounded-full border border-white/10 bg-white/[0.03] text-gray-500 transition-colors duration-200 hover:border-white/20 hover:bg-white/[0.06] hover:text-white\",\"aria-label\":\"GitHub\",\"children\":[\"$\",\"svg\",null,{\"className\":\"w-5 h-5\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z\",\"clipRule\":\"evenodd\"}]}]}],[\"$\",\"$L17\",null,{\"href\":\"#\",\"className\":\"grid h-10 w-10 place-items-center rounded-full border border-white/10 bg-white/[0.03] text-gray-500 transition-colors duration-200 hover:border-white/20 hover:bg-white/[0.06] hover:text-white\",\"aria-label\":\"Discord\",\"children\":[\"$\",\"svg\",null,{\"className\":\"w-5 h-5\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"$21\",\"clipRule\":\"evenodd\"}]}]}]]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"13:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n22:T797,[{\"@context\":\"https://schema.org\",\"@type\":\"TechArticle\",\"headline\":\"上码使用指南\",\"description\":\"上码官方文档,包含拖拽部署、CLI 部署、自定义域名配置与常见框架发布说明。\",\"url\":\"https://www.upma.cn/docs\",\"inLanguage\":\"zh-CN\"},{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"首页\",\"item\":\"https://www.upma.cn\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"使用指南\",\"item\":\"https://www.upma.cn/docs\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"上码支持哪些部署方式?\",\"acceptedA
2nswer\":{\"@type\":\"Answer\",\"text\":\"支持拖拽上传和 CLI 两种方式。新手可直接拖拽静态文件夹,工程化项目可使用构建产物配合 CLI 发布。\"}},{\"@type\":\"Question\",\"name\":\"部署后出现 404 通常怎么排查?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"优先检查是否存在 index.html、上传根目录是否正确、路由模式是否需要重写以及 DNS 解析是否已生效。\"}},{\"@type\":\"Question\",\"name\":\"是否支持自定义域名和 HTTPS?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"支持。你可以绑定自己的域名,并通过平台自动配置 HTTPS 证书与续期,减少运维成本。\"}}]},{\"@context\":\"https://schema.org\",\"@type\":\"HowTo\",\"name\":\"5 分钟完成静态网站部署\",\"description\":\"按照文档步骤完成文件准备、上传发布、域名绑定与上线验证。\",\"step\":[{\"@type\":\"HowToStep\",\"name\":\"准备发布目录\",\"text\":\"确认项目构建完成,目录中包含可访问入口文件 index.html。\"},{\"@type\":\"HowToStep\",\"name\":\"上传并发布\",\"text\":\"通过拖拽或 CLI 上传构建目录,等待系统完成静态资源分发。\"},{\"@type\":\"HowToStep\",\"name\":\"绑定域名并验证\",\"text\":\"配置 DNS 解析后绑定自定义域名,使用 DNS/SSL 工具检查解析和证书状态。\"}]}]"])</script>
2<script>self.__next_f.push([1,"14:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$22\"}}],[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-white text-zinc-900 selection:bg-blue-600 selection:text-white\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-b border-zinc-200\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto max-w-7xl px-6 py-3\",\"children\":[\"$\",\"nav\",null,{\"className\":\"flex items-center gap-2 text-sm text-zinc-500\",\"children\":[[\"$\",\"$L17\",null,{\"href\":\"/\",\"className\":\"hover:text-zinc-900 transition-colors\",\"children\":\"首页\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-right w-3.5 h-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mthhwq\",{\"d\":\"m9 18 6-6-6-6\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"text-zinc-900 font-medium\",\"children\":\"使用指南\"}]]}]}]}],[\"$\",\"div\",null,{\"className\":\"container mx-auto max-w-7xl px-6 py-12\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-16\",\"children\":[[\"$\",\"$L23\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 min-w-0 max-w-3xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"mb-12 pb-8 border-b border-zinc-200\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-sm font-medium text-blue-500 mb-4\",\"children\":\"Documentation\"}],[\"$\",\"h1\",null,{\"className\":\"text-4xl font-bold tracking-tight text-zinc-900 mb-4\",\"children\":\"使用指南\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-zinc-600 leading-relaxed\",\"children\":\"本指南将手把手教您如何将网站发布到互联网上。即使您是第一次接触网站部署,跟着下面的步骤操作,也能在 5 分钟内完成。\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 flex flex-wrap gap-2\",\"children\":[[\"$\",\"$L17\",null,{\"href\":\"/deploy/deploy-react\",\"className\":\"rounded-full border border-zinc-200 px-3 py-1 text-sm text-zinc-600 hover:border-blue-400 hover:text-blue-600 transition-colors\",\"children\":\"React 部署指南\"}],[\"$\",\"$L17\",null,{\"href\":\"/deploy/deploy-next\",\"className\":\"rounded-full border border-zinc-200 px-3 py-1 text-sm text-zinc-600 hover:border-blue-400 hover:text-blue-600 transition-colors\",\"children\":\"Next.js 部署指南\"}],[\"$\",\"$L17\",null,{\"href\":\"/tools/dns\",\"className\":\"rounded-full border border-zinc-200 px-3 py-1 text-sm text-zinc-600 hover:border-blue-400 hover:text-blue-600 transition-colors\",\"children\":\"DNS 解析查询工具\"}],[\"$\",\"$L17\",null,{\"href\":\"/tools/ssl-check\",\"className\":\"rounded-full border border-zinc-200 px-3 py-1 text-sm text-zinc-600 hover:border-blue-400 hover:text-blue-600 transition-colors\",\"children\":\"SSL 证书检测工具\"}],\"$L24\"]}]]}],\"$L25\",\"$L26\"]}]]}]}]]}]],[\"$L27\"],\"$L28\"]}]\n"])</script>
2<script>self.__next_f.push([1,"15:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L29\",null,{\"children\":\"$L2a\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L2b\",null,{\"children\":[\"$\",\"$2c\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L2d\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script>
2<script>self.__next_f.push([1,"2e:I[445331,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\",\"/_next/static/chunks/fe96ba40e9e8ef1d.js\",\"/_next/static/chunks/db81d66fdcac06eb.js\",\"/_next/static/chunks/61148fb845518522.js\",\"/_next/static/chunks/ac22bed2698caa30.js\"],\"CodeBlock\"]\n2f:I[172039,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\",\"/_next/static/chunks/fe96ba40e9e8ef1d.js\",\"/_next/static/chunks/db81d66fdcac06eb.js\",\"/_next/static/chunks/61148fb845518522.js\",\"/_next/static/chunks/ac22bed2698caa30.js\"],\"Image\"]\n47:I[802718,[\"/_next/static/chunks/b2b9122c1b63621e.js\",\"/_next/static/chunks/395e51502c352751.js\"],\"OutletBoundary\"]\n18:[\"$\",\"span\",null,{\"children\":\"导航页托管\"}]\n"])</script>
2<script>self.__next_f.push([1,"19:[\"$\",\"details\",\"框架部署\",{\"className\":\"group\",\"open\":false,\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex min-h-12 cursor-pointer list-none items-center justify-between px-4 text-sm font-semibold text-gray-100 [\u0026::-webkit-details-marker]:hidden\",\"children\":[[\"$\",\"span\",null,{\"children\":\"框架部署\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-down h-4 w-4 text-gray-500 transition-transform group-open:rotate-180\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"qrunsl\",{\"d\":\"m6 9 6 6 6-6\"}],\"$undefined\"]}]]}],[\"$\",\"ul\",null,{\"className\":\"grid grid-cols-2 gap-x-4 gap-y-1 px-4 pb-4 text-sm\",\"children\":[[\"$\",\"li\",\"HTML 部署\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/deploy-html\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"HTML 部署\"}],null]}]}],[\"$\",\"li\",\"React 部署\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/deploy-react\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"React 部署\"}],null]}]}],[\"$\",\"li\",\"Vue 部署\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/deploy-vue\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Vue 部署\"}],null]}]}],[\"$\",\"li\",\"PDF 托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/host-pdf\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"PDF 托管\"}],null]}]}],[\"$\",\"li\",\"DeepSeek 部署\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/deploy-deepseek\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"DeepSeek 部署\"}],null]}]}]]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"1a:[\"$\",\"details\",\"开发工具\",{\"className\":\"group\",\"open\":false,\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex min-h-12 cursor-pointer list-none items-center justify-between px-4 text-sm font-semibold text-gray-100 [\u0026::-webkit-details-marker]:hidden\",\"children\":[[\"$\",\"span\",null,{\"children\":\"开发工具\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-down h-4 w-4 text-gray-500 transition-transform group-open:rotate-180\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"qrunsl\",{\"d\":\"m6 9 6 6 6-6\"}],\"$undefined\"]}]]}],[\"$\",\"ul\",null,{\"className\":\"grid grid-cols-2 gap-x-4 gap-y-1 px-4 pb-4 text-sm\",\"children\":[[\"$\",\"li\",\"JSON 格式化\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/tools/json-formatter\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"JSON 格式化\"}],null]}]}],[\"$\",\"li\",\"正则测试\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/tools/regex\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"正则测试\"}],null]}]}],[\"$\",\"li\",\"IP 查询\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/tools/ip\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"IP 查询\"}],null]}]}],[\"$\",\"li\",\"Ping 检测\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/tools/ping\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Ping 检测\"}],null]}]}],[\"$\",\"li\",\"查看全部\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/tools\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors font-medium text-blue-300 hover:text-blue-200\",\"children\":[[\"$\",\"span\",null,{\"children\":\"查看全部\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]}]]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"1b:[\"$\",\"details\",\"资源支持\",{\"className\":\"group\",\"open\":false,\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex min-h-12 cursor-pointer list-none items-center justify-between px-4 text-sm font-semibold text-gray-100 [\u0026::-webkit-details-marker]:hidden\",\"children\":[[\"$\",\"span\",null,{\"children\":\"资源支持\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-down h-4 w-4 text-gray-500 transition-transform group-open:rotate-180\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"qrunsl\",{\"d\":\"m6 9 6 6 6-6\"}],\"$undefined\"]}]]}],[\"$\",\"ul\",null,{\"className\":\"grid grid-cols-2 gap-x-4 gap-y-1 px-4 pb-4 text-sm\",\"children\":[[\"$\",\"li\",\"价格\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/pricing\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"价格\"}],null]}]}],[\"$\",\"li\",\"使用指南\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/docs\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"使用指南\"}],null]}]}],[\"$\",\"li\",\"博客\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/blog\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"博客\"}],null]}]}],[\"$\",\"li\",\"隐私\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/legal/privacy\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"隐私\"}],null]}]}],[\"$\",\"li\",\"条款\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/legal/terms\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"条款\"}],null]}]}]]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"1c:[\"$\",\"span\",null,{\"children\":\"Vue 部署\"}]\n1d:[\"$\",\"li\",\"PDF 托管\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/host-pdf\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"PDF 托管\"}],null]}]}]\n1e:[\"$\",\"li\",\"DeepSeek 部署\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/deploy/deploy-deepseek\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"DeepSeek 部署\"}],null]}]}]\n"])</script>
2<script>self.__next_f.push([1,"1f:[\"$\",\"div\",\"开发工具\",{\"className\":\"min-w-0\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-4 text-sm font-semibold text-gray-200\",\"children\":\"开发工具\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2 text-sm\",\"children\":[[\"$\",\"li\",\"JSON 格式化\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/tools/json-formatter\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"JSON 格式化\"}],null]}]}],[\"$\",\"li\",\"正则测试\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/tools/regex\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"正则测试\"}],null]}]}],[\"$\",\"li\",\"IP 查询\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/tools/ip\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"IP 查询\"}],null]}]}],[\"$\",\"li\",\"Ping 检测\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/tools/ping\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Ping 检测\"}],null]}]}],[\"$\",\"li\",\"查看全部\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/tools\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors font-medium text-blue-300 hover:text-blue-200\",\"children\":[[\"$\",\"span\",null,{\"children\":\"查看全部\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]}]]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"20:[\"$\",\"div\",\"资源支持\",{\"className\":\"min-w-0\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-4 text-sm font-semibold text-gray-200\",\"children\":\"资源支持\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2 text-sm\",\"children\":[[\"$\",\"li\",\"价格\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/pricing\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"价格\"}],null]}]}],[\"$\",\"li\",\"使用指南\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/docs\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"使用指南\"}],null]}]}],[\"$\",\"li\",\"博客\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/blog\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"博客\"}],null]}]}],[\"$\",\"li\",\"隐私\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/legal/privacy\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"隐私\"}],null]}]}],[\"$\",\"li\",\"条款\",{\"children\":[\"$\",\"$L17\",null,{\"href\":\"/legal/terms\",\"prefetch\":false,\"className\":\"inline-flex min-h-10 items-center gap-1.5 rounded-md py-1 transition-colors text-gray-500 hover:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"条款\"}],null]}]}]]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"24:[\"$\",\"$L17\",null,{\"href\":\"/tools/meta-generator\",\"className\":\"rounded-full border border-zinc-200 px-3 py-1 text-sm text-zinc-600 hover:border-blue-400 hover:text-blue-600 transition-colors\",\"children\":\"Meta 标签生成器\"}]\n"])</script>
2<script>self.__next_f.push([1,"25:[\"$\",\"div\",null,{\"className\":\"prose prose-zinc max-w-none prose-lg dark:prose-invert prose-headings:scroll-mt-28 prose-a:text-blue-600 prose-a:no-underline hover:prose-a:underline prose-img:rounded-xl\",\"children\":[[\"$\",\"section\",null,{\"id\":\"quick-start\",\"className\":\"mb-20 scroll-mt-28\",\"children\":[[\"$\",\"h2\",null,{\"children\":\"快速开始\"}],[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"什么是「部署」?\"}],\" \",\"简单来说,部署就是把你电脑上的网页文件上传到服务器,让全世界的人都能通过网址访问。上码 (Upma) 帮你省去了租服务器、配置域名等繁琐步骤。\"]}],[\"$\",\"h3\",null,{\"id\":\"drag-deploy\",\"className\":\"scroll-mt-28\",\"children\":\"方式一:拖拽部署(推荐新手)\"}],[\"$\",\"p\",null,{\"children\":\"这是最简单的方式,不需要安装任何软件,也不需要敲命令。只要用鼠标拖一下文件夹,网站就上线了。\"}],[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-emerald-200 bg-emerald-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-lightbulb w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1gvzjb\",{\"d\":\"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5\"}],[\"$\",\"path\",\"x1upvd\",{\"d\":\"M9 18h6\"}],[\"$\",\"path\",\"ceow96\",{\"d\":\"M10 22h4\"}],\"$undefined\"]}]}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-semibold mb-1\",\"children\":\"适用场景\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":\"个人博客、简历页面、作品集、活动页、任何静态网页都可以用这种方式部署。\"}]]}]]}]}],[\"$\",\"ul\",null,{\"className\":\"list-none pl-0 space-y-12 mt-8\",\"children\":[[\"$\",\"li\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1\",\"children\":\"1\"}],[\"$\",\"div\",null,{\"className\":\"text-stone-700 leading-relaxed\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"准备网页文件\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base\",\"children\":[\"首先,你需要有一个包含网页文件的文件夹。这个文件夹里\",[\"$\",\"strong\",null,{\"children\":\"必须\"}],\"有一个叫 \",[\"$\",\"code\",null,{\"children\":\"index.html\"}],\" \",\"的文件,这是网站的入口页面。\"]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"$L2e\",null,{\"language\":\"text\",\"filename\":\"文件夹结构示例\",\"children\":\"my-website/\\n├── index.html      ← 必须有这个文件!\\n├── style.css       ← 样式文件(可选)\\n├── script.js       ← 脚本文件(可选)\\n└── images/         ← 图片文件夹(可选)\\n    ├── logo.png\\n    └── photo.jpg\"}]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-amber-200 bg-amber-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-triangle-alert w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"wmoenq\",{\"d\":\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"}],[\"$\",\"path\",\"juzpu7\",{\"d\":\"M12 9v4\"}],[\"$\",\"path\",\"p32p05\",{\"d\":\"M12 17h.01\"}],\"$undefined\"]}]}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-semibold mb-1\",\"children\":\"常见错误\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"如果你的文件夹里没有 \",[\"$\",\"code\",null,{\"children\":\"index.html\"}],\",或者它在子文件夹里,部署后访问会显示 404 错误。\"]}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-zinc-600\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"💡 补救小贴士:\"}],\"如果不小心传错了也没关系。部署完成后,你可以在项目后台的「页面列表」里找到正确的文件,点击右侧菜单将其\",[\"$\",\"strong\",null,{\"children\":\"「设为主页」\"}],\"即可修复。\"]}]]}]]}]]}]}]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50\",\"style\":{\"aspectRatio\":\"800/400\"},\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-folder-structure.png\",\"alt\":\"文件结构示例\",\"
2width\":800,\"height\":400,\"className\":\"w-full h-full object-cover\"}]}]}]]}]]}],[\"$\",\"li\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1\",\"children\":\"2\"}],\"$L30\"]}],\"$L31\",\"$L32\",\"$L33\",\"$L34\"]}],\"$L35\",\"$L36\",\"$L37\",\"$L38\",\"$L39\",\"$L3a\",\"$L3b\",\"$L3c\",\"$L3d\",\"$L3e\",\"$L3f\",\"$L40\",\"$L41\",\"$L42\"]}],\"$L43\",\"$L44\",\"$L45\",\"$L46\"]}]\n"])</script>
2<script>self.__next_f.push([1,"26:[\"$\",\"div\",null,{\"className\":\"mt-16 pt-8 border-t border-zinc-200 flex justify-between\",\"children\":[[\"$\",\"div\",null,{}],[\"$\",\"$L17\",null,{\"href\":\"/explore\",\"className\":\"group flex items-center gap-2 text-sm font-medium text-zinc-600 hover:text-zinc-900 transition-colors\",\"children\":[\"前往探索广场\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-right w-4 h-4 group-hover:translate-x-0.5 transition-transform\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mthhwq\",{\"d\":\"m9 18 6-6-6-6\"}],\"$undefined\"]}]]}]]}]\n27:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/ac22bed2698caa30.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n28:[\"$\",\"$L47\",null,{\"children\":[\"$\",\"$2c\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@48\"}]}]\n"])</script>
2<script>self.__next_f.push([1,"30:[\"$\",\"div\",null,{\"className\":\"text-stone-700 leading-relaxed\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"登录上码\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base\",\"children\":[\"打开浏览器,访问\",\" \",[\"$\",\"$L17\",null,{\"href\":\"https://www.upma.cn\",\"children\":\"www.upma.cn\"}],\"。如果你还没有账号,可以用手机号或微信快速注册。\"]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50\",\"style\":{\"aspectRatio\":\"800/500\"},\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-home-login.png\",\"alt\":\"登录界面\",\"width\":800,\"height\":500,\"className\":\"w-full h-full object-cover\"}]}]}]]}]\n31:[\"$\",\"li\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1\",\"children\":\"3\"}],[\"$\",\"div\",null,{\"className\":\"text-stone-700 leading-relaxed\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"找到「上传区域」\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base\",\"children\":[\"登录后,你会看到首页有一个大大的上传区域。它不仅支持\",[\"$\",\"strong\",null,{\"children\":\"拖拽\"}],\",也可以直接\",[\"$\",\"strong\",null,{\"children\":\"点击\"}],\"来选择文件。\"]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50\",\"style\":{\"aspectRatio\":\"800/500\"},\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-upload-zone.png\",\"alt\":\"上传区域\",\"width\":800,\"height\":500,\"className\":\"w-full h-full object-cover\"}]}]}]]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"32:[\"$\",\"li\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1\",\"children\":\"4\"}],[\"$\",\"div\",null,{\"className\":\"text-stone-700 leading-relaxed\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"上传文件\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base\",\"children\":[\"你可以通过以下\",[\"$\",\"strong\",null,{\"children\":\"任意一种方式\"}],\"上传:\"]}],[\"$\",\"ul\",null,{\"className\":\"mt-2 list-disc list-inside text-zinc-600 space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"拖拽文件夹\"}],\":将整个网页文件夹拖入框内(推荐)。\"]}],[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"拖拽压缩包\"}],\":将 zip 格式的压缩包拖入框内。\"]}],[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"拖拽单文件\"}],\":直接拖入 index.html 等单独文件。\"]}],[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"点击选择\"}],\":点击上传区域,在弹出的文件窗口中选择。\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50\",\"style\":{\"aspectRatio\":\"800/500\"},\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-upload-zone2.png\",\"alt\":\"上传区域\",\"width\":800,\"height\":500,\"className\":\"w-full h-full object-cover\"}]}],[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-blue-200 bg-blue-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-info w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"1dtifu\",{\"d\":\"M12 16v-4\"}],[\"$\",\"path\",\"e9boi3\",{\"d\":\"M12 8h.01\"}],\"$undefined\"]}]}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[\"$undefined\",[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":[\"无论使用哪种方式,请确保你的文件里包含\",\" \",[\"$\",\"strong\",null,{\"children\":\"index.html\"}],\",它是网站的入口。\"]}]]}]]}]}]]}]]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"33:[\"$\",\"li\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1\",\"children\":\"5\"}],[\"$\",\"div\",null,{\"className\":\"text-stone-700 leading-relaxed\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"等待上传完成\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base\",\"children\":\"拖入后,系统会自动开始上传文件。你会看到一个进度条。上传速度取决于你的文件大小和网络状况,通常几秒到几分钟不等。\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50\",\"style\":{\"aspectRatio\":\"800/500\"},\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-upload-zone3.png\",\"alt\":\"上传区域\",\"width\":800,\"height\":500,\"className\":\"w-full h-full object-cover\"}]}]}]]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"34:[\"$\",\"li\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1\",\"children\":\"6\"}],[\"$\",\"div\",null,{\"className\":\"text-stone-700 leading-relaxed\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"获取访问链接\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base\",\"children\":[\"上传完成后,系统会给你一个专属链接,格式类似\",\" \",[\"$\",\"code\",null,{\"children\":\"https://xxx.upma.site\"}],\"。点击这个链接,就能看到你的网站了!🎉\"]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50\",\"style\":{\"aspectRatio\":\"800/500\"},\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-deploy-success.png\",\"alt\":\"部署成功\",\"width\":800,\"height\":500,\"className\":\"w-full h-full object-cover\"}]}],[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50\",\"style\":{\"aspectRatio\":\"800/500\"},\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-deploy-success2.png\",\"alt\":\"部署成功\",\"width\":800,\"height\":500,\"className\":\"w-full h-full object-cover\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-emerald-200 bg-emerald-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":\"$25:props:children:0:props:children:4:props:children:props:children:0:props:children\"}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-semibold mb-1\",\"children\":\"恭喜!\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":\"你的网站已经上线了!现在可以把这个链接分享给朋友、放到简历里、或者发到社交媒体了。\"}]]}]]}]}]}]]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"35:[\"$\",\"h3\",null,{\"id\":\"cli-deploy\",\"className\":\"mt-16 scroll-mt-28\",\"children\":\"方式二:命令行部署(适合开发者)\"}]\n36:[\"$\",\"p\",null,{\"children\":\"如果你是程序员,或者需要把部署集成到自动化流程中(比如 GitHub Actions),可以使用我们的命令行工具。\"}]\n37:[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-blue-200 bg-blue-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":\"$32:props:children:1:props:children:3:props:children:1:props:children:props:children:0:props:children\"}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[\"$undefined\",[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":\"CLI 工具目前正在开发中,以下为预览版文档。\"}]]}]]}]}]\n38:[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-8 mb-4\",\"children\":\"安装 CLI\"}]\n39:[\"$\",\"p\",null,{\"children\":\"打开终端(macOS/Linux)或命令提示符(Windows),输入以下命令:\"}]\n3a:[\"$\",\"$L2e\",null,{\"language\":\"bash\",\"filename\":\"Terminal\",\"children\":\"npm install -g upma-cli\"}]\n3b:[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"什么是终端?\"}],\" \",\"终端是一个可以输入命令的黑色窗口。在 macOS 上按\",\" \",[\"$\",\"code\",null,{\"children\":\"Cmd + 空格\"}],\" 搜索「Terminal」可以打开;在 Windows 上按 \",[\"$\",\"code\",null,{\"children\":\"Win + R\"}],\",输入 \",[\"$\",\"code\",null,{\"children\":\"cmd\"}],\" 回车。\"]}]\n3c:[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-8 mb-4\",\"children\":\"登录\"}]\n3d:[\"$\",\"$L2e\",null,{\"language\":\"bash\",\"filename\":\"Terminal\",\"children\":\"upma login\"}]\n3e:[\"$\",\"p\",null,{\"children\":\"执行后会弹出浏览器让你授权登录。\"}]\n3f:[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-8 mb-4\",\"children\":\"部署\"}]\n40:[\"$\",\"p\",null,{\"children\":\"进入你的项目目录,执行部署命令:\"}]\n41:[\"$\",\"$L2e\",null,{\"language\":\"bash\",\"filename\":\"Terminal\",\"children\":\"cd my-website\\nupma deploy\"}]\n42:[\"$\",\"p\",null,{\"children\":\"系统会自动上传当前目录下的所有文件,并返回访问链接。\"}]\n"])</script>
2<script>self.__next_f.push([1,"43:[\"$\",\"section\",null,{\"id\":\"frameworks\",\"className\":\"mb-20 scroll-mt-28\",\"children\":[[\"$\",\"h2\",null,{\"children\":\"框架构建指南\"}],[\"$\",\"p\",null,{\"children\":\"如果你使用 React、Vue、Next.js 等现代前端框架开发网站,需要先「构建」项目,生成可以直接运行的静态文件,然后再上传。\"}],[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-blue-200 bg-blue-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":\"$32:props:children:1:props:children:3:props:children:1:props:children:props:children:0:props:children\"}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-semibold mb-1\",\"children\":\"什么是「构建」?\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":\"现代框架的源代码(.jsx, .vue, .ts 等)浏览器无法直接运行。构建就是把这些源代码转换成浏览器能理解的 HTML/CSS/JS 文件。\"}]]}]]}]}],[\"$\",\"h3\",null,{\"id\":\"react-vue\",\"className\":\"mt-12 scroll-mt-28\",\"children\":\"React / Vue / Vite 项目\"}],[\"$\",\"p\",null,{\"children\":\"这是最常见的前端项目类型。构建步骤如下:\"}],[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-6 mb-4\",\"children\":\"1. 打开终端,进入项目目录\"}],[\"$\",\"$L2e\",null,{\"language\":\"bash\",\"filename\":\"Terminal\",\"children\":\"cd /path/to/your/project\"}],[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-6 mb-4\",\"children\":\"2. 执行构建命令\"}],[\"$\",\"$L2e\",null,{\"language\":\"bash\",\"filename\":\"Terminal\",\"children\":\"npm run build\"}],[\"$\",\"p\",null,{\"children\":[\"构建完成后,项目目录里会多出一个 \",[\"$\",\"code\",null,{\"children\":\"dist\"}],\" \",\"文件夹(有些项目可能叫 \",[\"$\",\"code\",null,{\"children\":\"build\"}],\")。\"]}],[\"$\",\"div\",null,{\"className\":\"my-8 w-full rounded-xl border border-zinc-200 bg-zinc-50 overflow-hidden h-64 flex flex-col\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-8 border-b border-zinc-200 bg-zinc-100 flex items-center px-4 gap-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-1.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-2.5 h-2.5 rounded-full bg-red-400/50\"}],[\"$\",\"div\",null,{\"className\":\"w-2.5 h-2.5 rounded-full bg-amber-400/50\"}],[\"$\",\"div\",null,{\"className\":\"w-2.5 h-2.5 rounded-full bg-emerald-400/50\"}]]}],false,[\"$\",\"div\",null,{\"className\":\"ml-4 text-xs text-zinc-400 font-mono\",\"children\":\"Terminal\"}],false]}],[\"$\",\"div\",null,{\"className\":\"flex-1 flex flex-col items-center justify-center p-8 text-zinc-400/50 bg-white/50 relative\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute inset-0 opacity-[0.03] bg-[radial-gradient(#000_1px,transparent_1px)] [background-size:16px_16px]\"}],[\"$\",\"div\",null,{\"className\":\"mb-4 transform transition-transform hover:scale-110 duration-500\",\"children\":[false,false,[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":48,\"height\":48,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":1,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-terminal\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"baeox8\",{\"d\":\"M12 19h8\"}],[\"$\",\"path\",\"1yngyt\",{\"d\":\"m4 17 6-6-6-6\"}],\"$undefined\"]}],false]}],[\"$\",\"p\",null,{\"className\":\"text-sm font-medium text-zinc-500 relative z-10 px-4 py-2 bg-white/80 rounded-full border border-zinc-100 shadow-sm animate-pulse-slow\",\"children\":\"终端显示 npm run build 命令执行成功,以及 dist 文件夹生成\"}]]}]]}],[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-6 mb-4\",\"children\":\"3. 上传 dist 文件夹\"}],[\"$\",\"p\",null,{\"children\":[\"把 \",[\"$\",\"code\",null,{\"children\":\"dist\"}],\" 文件夹(不是里面的文件)拖拽到上码的 上传区域即可。\"]}
2],[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-amber-200 bg-amber-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":\"$25:props:children:0:props:children:5:props:children:0:props:children:1:props:children:3:props:children:props:children:props:children:0:props:children\"}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-semibold mb-1\",\"children\":\"注意\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":[\"不要上传整个项目目录!只上传 \",[\"$\",\"code\",null,{\"children\":\"dist\"}],\" \",\"文件夹,其他文件(如 node_modules、src)不需要也不应该上传。\"]}]]}]]}]}],[\"$\",\"h3\",null,{\"id\":\"nextjs\",\"className\":\"mt-12 scroll-mt-28\",\"children\":\"Next.js 项目\"}],[\"$\",\"p\",null,{\"children\":\"Next.js 默认是「服务端渲染」模式,需要额外配置才能导出静态文件。\"}],[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-6 mb-4\",\"children\":\"1. 修改配置文件\"}],[\"$\",\"p\",null,{\"children\":[\"打开项目根目录的 \",[\"$\",\"code\",null,{\"children\":\"next.config.js\"}],\"(如果没有就新建一个),添加以下配置:\"]}],[\"$\",\"$L2e\",null,{\"language\":\"javascript\",\"filename\":\"next.config.js\",\"highlightLines\":[3],\"children\":\"/** @type {import('next').NextConfig} */\\nconst nextConfig = {\\n  output: 'export',  // ← 添加这一行\\n}\\n\\nmodule.exports = nextConfig\"}],\"$L49\",\"$L4a\",\"$L4b\",\"$L4c\",\"$L4d\",\"$L4e\",\"$L4f\",\"$L50\",\"$L51\",\"$L52\",\"$L53\",\"$L54\",\"$L55\",\"$L56\",\"$L57\",\"$L58\"]}]\n"])</script>
2<script>self.__next_f.push([1,"44:[\"$\",\"section\",null,{\"id\":\"domains\",\"className\":\"mb-20 scroll-mt-28\",\"children\":[[\"$\",\"h2\",null,{\"children\":\"自定义域名\"}],[\"$\",\"p\",null,{\"children\":[\"默认情况下,你的网站地址是 \",[\"$\",\"code\",null,{\"children\":\"xxx.upma.site\"}],\"。如果你有自己的域名(比如 \",[\"$\",\"code\",null,{\"children\":\"www.example.com\"}],\"),可以把它绑定到你的上码项目,这样访问你的域名就能看到你的网站。\"]}],[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-blue-200 bg-blue-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":\"$32:props:children:1:props:children:3:props:children:1:props:children:props:children:0:props:children\"}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-semibold mb-1\",\"children\":\"什么是域名?\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":[\"域名就是网站的地址,比如 \",[\"$\",\"code\",null,{\"children\":\"baidu.com\"}],\"、\",[\"$\",\"code\",null,{\"children\":\"taobao.com\"}],\"。你可以在阿里云、腾讯云、GoDaddy 等平台购买自己的域名。\"]}]]}]]}]}],[\"$\",\"h3\",null,{\"id\":\"add-domain\",\"className\":\"scroll-mt-28\",\"children\":\"第 1 步:添加域名\"}],[\"$\",\"ol\",null,{\"children\":[[\"$\",\"li\",null,{\"children\":\"进入你的项目设置页面\"}],[\"$\",\"li\",null,{\"children\":\"点击「域名」选项卡\"}],[\"$\",\"li\",null,{\"children\":\"点击「绑定域名」按钮\"}],[\"$\",\"li\",null,{\"children\":[\"输入你的域名(比如 \",[\"$\",\"code\",null,{\"children\":\"www.example.com\"}],\")\"]}],[\"$\",\"li\",null,{\"children\":\"点击确认\"}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm bg-zinc-50\",\"style\":{\"aspectRatio\":\"800/500\"},\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-domain-verified.png\",\"alt\":\"上传区域\",\"width\":800,\"height\":500,\"className\":\"w-full h-full object-cover\"}]}]}],[\"$\",\"h3\",null,{\"id\":\"dns-config\",\"className\":\"scroll-mt-28\",\"children\":\"第 2 步:配置 DNS\"}],[\"$\",\"p\",null,{\"children\":\"添加域名后,系统会给你两条 DNS 记录需要配置。你需要登录你购买域名的平台(比如阿里云),找到「域名解析」或「DNS 设置」,添加这两条记录。\"}],[\"$\",\"div\",null,{\"className\":\"not-prose my-6 overflow-hidden rounded-lg border border-zinc-200\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm\",\"children\":[[\"$\",\"thead\",null,{\"className\":\"bg-zinc-50 border-b border-zinc-200\",\"children\":[\"$\",\"tr\",null,{\"children\":[[\"$\",\"th\",null,{\"className\":\"text-left py-3 px-4 font-semibold text-zinc-900\",\"children\":\"记录类型\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-3 px-4 font-semibold text-zinc-900\",\"children\":\"主机记录\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-3 px-4 font-semibold text-zinc-900\",\"children\":\"记录值\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-3 px-4 font-semibold text-zinc-900\",\"children\":\"说明\"}]]}]}],[\"$\",\"tbody\",null,{\"className\":\"divide-y divide-zinc-100\",\"children\":[[\"$\",\"tr\",null,{\"children\":[[\"$\",\"td\",null,{\"className\":\"py-3 px-4 font-mono text-blue-600 font-medium\",\"children\":\"CNAME\"}],[\"$\",\"td\",null,{\"className\":\"py-3 px-4 font-mono text-zinc-600\",\"children\":\"www\"}],[\"$\",\"td\",null,{\"className\":\"py-3 px-4 font-mono text-zinc-900\",\"children\":\"cname.upma.site\"}],[\"$\",\"td\",null,{\"className\":\"py-3 px-4 text-zinc-500\",\"children\":\"让域名指向上码服务器\"}]]}],[\"$\",\"tr\",null,{\"children\":[[\"$\",\"td\",null,{\"className\":\"py-3 px-4 font-mono text-blue-600 font-medium\",\"children\":\"TXT\"}],[\"$\",\"td\",null,{\"className\":\"py-3 px-4 font-mono text-zinc-600\",\"children\":\"_upma-challenge\"}],[\"$\",\"td\",null,{\"className\":\"py-3 px-4 font-mono text-zinc-900\",\"children\":\"upma-verify=xxx...\"}],[\"$\",\"td\",null,{\"className\":\"py-3 px-4 text-zinc-500\",\"children\":\"验证域名所有权\"}]]}]]}]]}]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm\",\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-domain-verified2.png\",\"alt\":\"上传区域\",\"width\":800,\"height\"
2:500,\"className\":\"w-full h-auto\"}]}]}],[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-emerald-200 bg-emerald-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":\"$25:props:children:0:props:children:4:props:children:props:children:0:props:children\"}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-semibold mb-1\",\"children\":\"主机记录填什么?\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":[\"$\",\"ul\",null,{\"className\":\"mt-2 mb-0\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"如果你绑定的是 \",[\"$\",\"code\",null,{\"children\":\"www.example.com\"}],\",主机记录填\",\" \",[\"$\",\"code\",null,{\"children\":\"www\"}]]}],[\"$\",\"li\",null,{\"children\":[\"如果你绑定的是 \",[\"$\",\"code\",null,{\"children\":\"example.com\"}],\"(裸域名),主机记录填 \",[\"$\",\"code\",null,{\"children\":\"@\"}]]}],[\"$\",\"li\",null,{\"children\":[\"如果你绑定的是 \",[\"$\",\"code\",null,{\"children\":\"blog.example.com\"}],\",主机记录填\",\" \",[\"$\",\"code\",null,{\"children\":\"blog\"}]]}]]}]}]]}]]}]}],[\"$\",\"h3\",null,{\"id\":\"ssl\",\"className\":\"scroll-mt-28\",\"children\":\"第 3 步:等待验证\"}],\"$L59\",\"$L5a\"]}]\n"])</script>
2<script>self.__next_f.push([1,"45:[\"$\",\"section\",null,{\"id\":\"updating\",\"className\":\"mb-20 scroll-mt-28\",\"children\":[[\"$\",\"h2\",null,{\"children\":\"如何更新网站\"}],[\"$\",\"div\",null,{\"className\":\"not-prose mb-6\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-blue-200 bg-blue-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":\"$32:props:children:1:props:children:3:props:children:1:props:children:props:children:0:props:children\"}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-semibold mb-1\",\"children\":\"核心逻辑\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":[\"在上码 (Upma),更新网站的方式和第一次部署\",[\"$\",\"strong\",null,{\"children\":\"完全一样\"}],\"。你只需要再次上传新的文件,系统会自动把它们发布为各种的新版本。\"]}]]}]]}]}]}],[\"$\",\"ul\",null,{\"className\":\"list-none pl-0 space-y-4\",\"children\":[[\"$\",\"li\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1\",\"children\":\"1\"}],[\"$\",\"div\",null,{\"className\":\"text-stone-700 leading-relaxed\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"修改你的代码\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base\",\"children\":\"在你的电脑上修改代码(比如改了文字、换了图片),并保存。\"}]]}]]}],[\"$\",\"li\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1\",\"children\":\"2\"}],[\"$\",\"div\",null,{\"className\":\"text-stone-700 leading-relaxed\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"构建(如果是框架项目)\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base\",\"children\":[\"如果你用的是 React/Vue 等框架,记得先运行\",\" \",[\"$\",\"code\",null,{\"children\":\"npm run build\"}],\" 生成最新的 \",[\"$\",\"code\",null,{\"children\":\"dist\"}],\" \",\"目录。\"]}]]}]]}],[\"$\",\"li\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1\",\"children\":\"3\"}],[\"$\",\"div\",null,{\"className\":\"text-stone-700 leading-relaxed\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"进入项目控制台\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base\",\"children\":\"登录上码,点击你的项目卡片进入项目详情页。\"}]]}]]}],[\"$\",\"li\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 w-6 h-6 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xs mt-1\",\"children\":\"4\"}],[\"$\",\"div\",null,{\"className\":\"text-stone-700 leading-relaxed\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"上传新版本\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base\",\"children\":[\"切换到 \",[\"$\",\"strong\",null,{\"children\":\"「页面」\"}],\" 选项卡,点击右上角的\",\" \",[\"$\",\"strong\",null,{\"children\":\"「更新项目」\"}],\" \",\"按钮,选择或拖拽你的新文件夹。\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm\",\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-update-project.png\",\"alt\":\"更新项目\",\"width\":800,\"height\":500,\"className\":\"w-full h-auto\"}]}]}],[\"$\",\"div\",null,{\"className\":\"mt-4 not-prose\",\"children\":[\"$\",\"div\",null,{\"className\":\"my-4 not-prose rounded-xl overflow-hidden border border-zinc-200 shadow-sm\",\"children\":[\"$\",\"$L2f\",null,{\"src\":\"/images/docs/docs-update-project2.png\",\"alt\":\"更新项目\",\"width\":800,\"height\"
2:500,\"className\":\"w-full h-auto\"}]}]}]]}],[\"$\",\"p\",null,{\"children\":\"就是这么简单!新的版本会作为 v2, v3... 自动记录,你可以随时在版本历史中查看或回滚。\"}]]}]\n"])</script>
2<script>self.__next_f.push([1,"46:[\"$\",\"section\",null,{\"id\":\"faq\",\"className\":\"mb-16\",\"children\":[[\"$\",\"h2\",null,{\"children\":\"常见问题\"}],[\"$\",\"div\",null,{\"className\":\"not-prose mt-6 space-y-3\",\"children\":[[\"$\",\"details\",null,{\"className\":\"group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors\",\"children\":[\"我没有编程基础,能用上码吗?\",[\"$\",\"svg\",null,{\"className\":\"w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M19 9l-7 7-7-7\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4\",\"children\":\"完全可以!如果你只是想发布一个简单的网页(比如用 WordPress 导出的静态页面,或者别人给你的 HTML 文件),只需要拖拽上传就行,不需要任何编程知识。\"}]]}],[\"$\",\"details\",null,{\"className\":\"group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors\",\"children\":[\"部署后访问显示 404 Not Found?\",[\"$\",\"svg\",null,{\"className\":\"w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M19 9l-7 7-7-7\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4\",\"children\":\"这通常是因为你上传的文件夹里没有 index.html 文件,或者 index.html 在子文件夹里。请确保 index.html 在文件夹的根目录。如果你上传的是 dist 文件夹,请直接拖拽 dist 文件夹本身,而不是它的父目录。\"}]]}],[\"$\",\"details\",null,{\"className\":\"group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors\",\"children\":[\"React/Vue 路由刷新后 404?\",[\"$\",\"svg\",null,{\"className\":\"w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M19 9l-7 7-7-7\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4\",\"children\":\"这是单页应用 (SPA) 的特性。上码默认会将未匹配的路由回退到 index.html,大多数情况下应该能正常工作。如果仍有问题,请检查你的路由配置是否使用了 HTML5 History 模式。\"}]]}],[\"$\",\"details\",null,{\"className\":\"group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors\",\"children\":[\"上传速度很慢怎么办?\",[\"$\",\"svg\",null,{\"className\":\"w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M19 9l-7 7-7-7\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4\",\"children\":\"上传速度取决于你的网络状况和文件大小。建议:1) 删除不需要的大文件(如 node_modules);2) 压缩图片尺寸;3) 使用更快的网络。如果是更新已有项目,上码会自动增量上传,只上传修改过的文件。\"}]]}],[\"$\",\"details\",null,{\"className\":\"group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors\",\"children\":[\"支持上传视频或大文件吗?\",\"$L5b\"]}],\"$L5c\"]}],\"$L5d\",\"$L5e\"]}]]}]\n"])</script>
2<script>self.__next_f.push([1,"49:[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-6 mb-4\",\"children\":\"2. 执行构建\"}]\n4a:[\"$\",\"$L2e\",null,{\"language\":\"bash\",\"filename\":\"Terminal\",\"children\":\"npm run build\"}]\n4b:[\"$\",\"p\",null,{\"children\":[\"构建完成后,静态文件会输出到 \",[\"$\",\"code\",null,{\"children\":\"out\"}],\" 文件夹。\"]}]\n4c:[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-6 mb-4\",\"children\":\"3. 上传 out 文件夹\"}]\n4d:[\"$\",\"p\",null,{\"children\":[\"把 \",[\"$\",\"code\",null,{\"children\":\"out\"}],\" 文件夹拖拽到上传区域即可。\"]}]\n4e:[\"$\",\"div\",null,{\"className\":\"my-4 rounded-lg border border-purple-200 bg-purple-50 p-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-shrink-0 mt-0.5 text-zinc-600\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-circle-alert w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"line\",\"1pkeuh\",{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"8\",\"y2\":\"12\"}],[\"$\",\"line\",\"4dfq90\",{\"x1\":\"12\",\"x2\":\"12.01\",\"y1\":\"16\",\"y2\":\"16\"}],\"$undefined\"]}]}],[\"$\",\"div\",null,{\"className\":\"text-sm text-zinc-700\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-semibold mb-1\",\"children\":\"功能限制\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003ep]:m-0\",\"children\":[\"使用静态导出后,以下 Next.js 功能将\",[\"$\",\"strong\",null,{\"children\":\"不可用\"}],\":\",[\"$\",\"ul\",null,{\"className\":\"mt-2 mb-0\",\"children\":[[\"$\",\"li\",null,{\"children\":\"API Routes(/api/*)\"}],[\"$\",\"li\",null,{\"children\":\"服务端渲染 (getServerSideProps)\"}],[\"$\",\"li\",null,{\"children\":\"增量静态再生 (ISR)\"}],[\"$\",\"li\",null,{\"children\":\"中间件 (Middleware)\"}]]}]]}]]}]]}]}]\n4f:[\"$\",\"h3\",null,{\"id\":\"static-html\",\"className\":\"mt-12 scroll-mt-28\",\"children\":\"纯 HTML 网页\"}]\n50:[\"$\",\"p\",null,{\"children\":[\"如果你的网页是手写的 HTML/CSS/JS,不需要任何构建步骤。直接把包含\",\" \",[\"$\",\"code\",null,{\"children\":\"index.html\"}],\" 的文件夹拖拽上传即可。\"]}]\n51:[\"$\",\"h3\",null,{\"id\":\"ssg\",\"className\":\"mt-12 scroll-mt-28\",\"children\":\"Hugo / Hexo 博客\"}]\n52:[\"$\",\"p\",null,{\"children\":\"这两个是流行的静态博客生成器。\"}]\n53:[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-6 mb-4\",\"children\":\"Hugo\"}]\n54:[\"$\",\"$L2e\",null,{\"language\":\"bash\",\"filename\":\"Terminal\",\"children\":\"hugo\"}]\n55:[\"$\",\"p\",null,{\"children\":[\"生成的文件在 \",[\"$\",\"code\",null,{\"children\":\"public\"}],\" 文件夹。\"]}]\n56:[\"$\",\"h4\",null,{\"className\":\"text-base font-semibold text-zinc-900 mt-6 mb-4\",\"children\":\"Hexo\"}]\n57:[\"$\",\"$L2e\",null,{\"language\":\"bash\",\"filename\":\"Terminal\",\"children\":\"hexo generate\"}]\n58:[\"$\",\"p\",null,{\"children\":[\"生成的文件同样在 \",[\"$\",\"code\",null,{\"children\":\"public\"}],\" \",\"文件夹。上传这个文件夹即可。\"]}]\n59:[\"$\",\"p\",null,{\"children\":\"DNS 配置后需要等待生效,通常 5-30 分钟,最长可能需要 48 小时(取决于你的域名服务商)。\"}]\n5a:[\"$\",\"p\",null,{\"children\":[\"验证成功后,域名状态会变成「已连接」,系统会自动为你的域名申请免费的 SSL 证书,让网站支持 \",[\"$\",\"code\",null,{\"children\":\"https://\"}],\" 安全访问。\"]}]\n5b:[\"$\",\"svg\",null,{\"className\":\"w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M19 9l-7 7-7-7\"}]}]\n5c:[\"$\",\"div\",null,{\"className\":\"px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4\",\"children\":\"支持,单文件最大 100MB。但建议将大型视频托管
2在专业视频平台(如 B 站、YouTube)并嵌入你的网页,以节省流量。\"}]\n5d:[\"$\",\"details\",null,{\"className\":\"group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hov"])</script>
2<script>self.__next_f.push([1,"er:shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors\",\"children\":[\"如何更新网站内容?\",[\"$\",\"svg\",null,{\"className\":\"w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M19 9l-7 7-7-7\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4\",\"children\":\"进入项目详情页 -\u003e 页面 -\u003e 点击「更新项目」,上传新的文件夹即可。新版本会自动覆盖旧版本,且支持秒级回滚。\"}]]}]\n5e:[\"$\",\"details\",null,{\"className\":\"group rounded-lg border border-zinc-200 bg-white overflow-hidden transition-shadow hover:shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-5 py-4 cursor-pointer text-zinc-900 font-medium text-sm hover:bg-zinc-50 transition-colors\",\"children\":[\"可以设置访问密码吗?\",[\"$\",\"svg\",null,{\"className\":\"w-4 h-4 text-zinc-400 transition-transform group-open:rotate-180\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M19 9l-7 7-7-7\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"px-5 pb-4 text-sm text-zinc-600 leading-relaxed border-t border-zinc-100 pt-4\",\"children\":\"可以!在项目设置里开启「密码保护」功能,设置一个密码,访客需要输入正确密码才能查看网站内容。适合内部资料、测试环境等场景。\"}]]}]\n"])</script>
2<script>self.__next_f.push([1,"5f:I[986150,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\"],\"default\"]\n60:I[96923,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\"],\"Providers\"]\n61:I[293264,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\"],\"PlansProvider\"]\n"])</script>
2<script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"suppressHydrationWarning\":true,\"className\":\"scroll-smooth\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased overflow-x-hidden bg-gray-50 dark:bg-[#050505] text-slate-900 dark:text-white\",\"children\":[[\"$\",\"$L5f\",null,{\"color\":\"linear-gradient(to right, #6366f1, #8b5cf6, #ec4899)\",\"initialPosition\":0.08,\"crawlSpeed\":200,\"height\":3,\"crawl\":true,\"showSpinner\":false,\"showForHashAnchor\":false,\"easing\":\"ease\",\"speed\":200,\"shadow\":\"0 0 10px #8b5cf6,0 0 5px #8b5cf6\"}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"SoftwareApplication\\\",\\\"name\\\":\\\"上码\\\",\\\"applicationCategory\\\":\\\"DeveloperApplication\\\",\\\"operatingSystem\\\":\\\"Web\\\",\\\"offers\\\":{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"0\\\",\\\"priceCurrency\\\":\\\"USD\\\"},\\\"description\\\":\\\"A platform to deploy AI-generated code (DeepSeek, ChatGPT, Claude) to the web instantly.\\\"}\"}}],[\"$\",\"$L60\",null,{\"children\":[\"$\",\"$L61\",null,{\"initialConfig\":{\"plans\":{\"FREE\":{\"id\":\"FREE\",\"name\":\"Free\",\"description\":\"面向个人开发者、学生及简单项目演示。\",\"popular\":false,\"pricing\":{\"monthly\":0,\"annual\":0},\"limits\":{\"maxProjects\":2,\"maxUploadSize\":10485760,\"maxStorage\":104857600,\"maxBandwidth\":1073741824,\"maxDomains\":0,\"hasCustomDomain\":false,\"hasSSL\":false,\"hasAnalytics\":false,\"hasPasswordProtection\":false,\"hasBranding\":true,\"maxVersionHistory\":3,\"maxTeamMembers\":1,\"buildQueue\":\"standard\",\"cdnTier\":\"shared\",\"supportLevel\":\"community\",\"hasCleanUrls\":false,\"rateLimitBytes\":524288,\"maxFormsPerProject\":1,\"maxFormSubmissionsPerMonth\":10,\"formRetentionDays\":10,\"hasFormWebhook\":false,\"hasFormOpenMode\":false},\"features\":[\"2 个项目\",\"每月 1GB 流量\",\"单次上传 10MB\",\"总存储 100MB\",\"内置表单(1 个 / 每月 10 次提交)\",\"表单数据保留 10 天\",\"标准构建队列\",\"可额外自定义域名\",\"自动 SSL 证书\",\"右下角存在托管于上码标识\"],\"aiCreditGrant\":{\"monthly\":{\"credits\":0,\"expiresInDays\":0,\"validityLabel\":\"无赠送积分\"},\"annual\":{\"credits\":0,\"expiresInDays\":0,\"validityLabel\":\"无赠送积分\"}}},\"PRO\":{\"id\":\"PRO\",\"name\":\"Pro\",\"description\":\"面向专业开发者、生产环境及商业项目。\",\"popular\":true,\"pricing\":{\"monthly\":19.9,\"annual\":199},\"limits\":{\"maxProjects\":50,\"maxUploadSize\":209715200,\"maxStorage\":5368709120,\"maxBandwidth\":107374182400,\"maxDomains\":10,\"hasCustomDomain\":true,\"hasSSL\":true,\"hasAnalytics\":true,\"hasPasswordProtection\":true,\"hasBranding\":false,\"maxVersionHistory\":10,\"maxTeamMembers\":1,\"buildQueue\":\"turbo\",\"cdnTier\":\"global\",\"supportLevel\":\"email\",\"hasCleanUrls\":true,\"rateLimitBytes\":2097152,\"maxFormsPerProject\":10,\"maxFormSubmissionsPerMonth\":1000,\"formRetentionDays\":180,\"hasFormWebhook\":true,\"hasFormOpenMode\":true},\"features\":[\"50 个项目\",\"每月 100GB 流量\",\"单次上传 200MB\",\"内置表单(每月 1 千次提交)\",\"全球加速 CDN (香港/日本 CN2)\",\"自定义域名 (10个)\",\"自动 SSL 证书\",\"统计分析 \u0026 访客明细\",\"网站访问密码\",\"去除托管于上码标识\",\"Clean URLs (隐藏 .html 后缀)\"],\"aiCreditGrant\":{\"monthly\":{\"credits\":50,\"expiresInDays\":30,\"validityLabel\":\"30 天有效期\"},\"annual\":{\"credits\":500,\"expiresInDays\":365,\"validityLabel\":\"一年有效期\"}}},\"TEAM\":{\"id\":\"TEAM\",\"name\":\"Team\",\"description\":\"面向企业、公司及需要协作的工作室团队。\",\"popular\":false,\"pricing\":{\"monthly\":199,\"annual\":1999},\"limits\":{\"maxProjects\":-1,\"maxUploadSize\":524288000,\"maxStorage\":53687091200,\"maxBandwidth\":1099511627776,\"maxDomains\":100,\"hasCustomDomain\":true,\"hasSSL\":true,\"hasAnalytics\":true,\"hasPasswordProtection\":true,\"hasBranding\":false,\"maxVersionHistory\":-1,\"maxTeamMembers\":5,\"buildQueue\":\"dedicated\",\"cdnTier\":\"enterprise\",\"supportLevel\":\"dedicated\",\"hasCleanUrls\":true,\"rateLimitBytes\":5242880,\"maxFormsPerProject\":100,\"maxFormSubmissionsPerMonth\":10000,\"formRetentionDays\":365,\"hasFormWebhook\":true,\"hasFormOpenMode\":true},\"features\":[\"无限项目\",\"每月 1TB 流量\",\"单次上传 500MB\",\"内置表单(每月 1 万次提交)\",\"独享极速构建实例\",\"团队协作 (5人)\",\"自å
2®šä¹‰åŸŸå (100个)\",\"统计分析 \u0026 访客明细\",\"网站访问密码\",\"优先工单支持\",\"Clean URLs (隐藏 .html 后缀)\"],\"aiCreditGrant\":{\"monthly\":{\"credits\":500,\"expiresInDays\":30,\"validityLabel\":\"30 天有效期\"},\"annual\":{\"credits\":5000,\"expiresInDays\":365,\"validityLabel\":\"一年有效期\"}}}},\"features\":[{\"category\":\"构建与存储\",\"items\":[{\"name\":\"项目数量\",\"free\":\"2 个\",\"pro\":\"50 个\",\"team\":\"无限\"},{\"name\":\"单次上传限制\",\"free\":\"10 MB\",\"pro\":\"200 MB\",\"team\":\"500 MB\"},{\"name\":\"存储空间\",\"free\":\"100 MB\",\"pro\":\"5 GB\",\"team\":\"50 GB\"},{\"name\":\"构建队列\",\"free\":\"标准 (排队)\",\"pro\":\"Turbo (3x 速度)\",\"team\":\"独享实例 (极速)\"}]},{\"category\":\"分发与网络\",\"items\":[{\"name\":\"带宽限制\",\"free\":\"5 Mbps\",\"pro\":\"20 Mbps\",\"team\":\"100 Mbps\"},{\"name\":\"月流量限制\",\"free\":\"1 GB (支持额外购买)\",\"pro\":\"100 GB (支持额外购买)\",\"team\":\"1 TB (支持额外购买)\"},{\"name\":\"CDN 节点\",\"free\":\"共享 (HK/US/EU)\",\"pro\":\"全球加速 (含香港 CN2)\",\"team\":\"全球企业级\"},{\"name\":\"自定义域名\",\"free\":\"可额外购买\",\"pro\":\"10 个 (支持额外购买)\",\"team\":\"100个 (支持额外购买)\"},{\"name\":\"自动管理/续期 SSL\",\"free\":\"✔ (自动续期)\",\"pro\":\"✔ (自动续期)\",\"team\":\"✔ (自动续期)\"}]},{\"category\":\"表单与线索收集\",\"items\":[{\"name\":\"活跃表单数\",\"free\":\"1 个\",\"pro\":\"10 个\",\"team\":\"100 个\"},{\"name\":\"每月表单提交次数\",\"free\":\"10 次\",\"pro\":\"1000 次\",\"team\":\"1 万次\"},{\"name\":\"表单数据保留\",\"free\":\"10 天\",\"pro\":\"180 天\",\"team\":\"1 å¹´\"},{\"name\":\"Open Mode \u0026 Webhook\",\"free\":\"✖\",\"pro\":\"✔\",\"team\":\"✔\"}]},{\"category\":\"高级功能\",\"items\":[{\"name\":\"网站访问密码\",\"free\":\"✖\",\"pro\":\"✔\",\"team\":\"✔\"},{\"name\":\"统计分析 \u0026 访客明细\",\"free\":\"✖\",\"pro\":\"✔\",\"team\":\"✔\"},{\"name\":\"去品牌化 (隐藏托管于标识)\",\"free\":\"✖\",\"pro\":\"✔\",\"team\":\"✔\"},{\"name\":\"版本回滚\",\"free\":\"✖\",\"pro\":\"最近 10 个版本\",\"team\":\"无限\"},{\"name\":\"团队协作\",\"free\":\"✖\",\"pro\":\"✖\",\"team\":\"5 名成员\"},{\"name\":\"Clean URLs (隐藏 .html 后缀)\",\"free\":\"✖\",\"pro\":\"✔\",\"team\":\"✔\"},{\"name\":\"技术支持\",\"free\":\"社区支持\",\"pro\":\"优先邮件\",\"team\":\"24h 专属工单\"}]}]},\"children\":\"$L62\"}]}],\"$L63\",\"$L64\",\"$L65\"]}]}]\n"])</script>
2<script>self.__next_f.push([1,"66:I[376193,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\"],\"UserProvider\"]\n67:I[408821,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\",\"/_next/static/chunks/8f11cc485796c631.js\"],\"default\"]\n68:I[754219,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\"],\"Toaster\"]\n69:I[421721,[\"/_next/static/chunks/733d483dbb25b2a8.js\",\"/_next/static/chunks/e61992e38fd16c06.js\"],\"\"]\n"])</script>
2<script>self.__next_f.push([1,"62:[\"$\",\"$L66\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$67\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/8f11cc485796c631.js\",\"async\":true}]],\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:children:0:props:children:1:props:children:2:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:children:0:props:children:1:props:children:2:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:children:0:props:children:1:props:children:2:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:children:0:props:children:1:props:children:2:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]\n"])</script>
2<script>self.__next_f.push([1,"63:[\"$\",\"$L68\",null,{\"position\":\"top-right\",\"theme\":\"system\",\"richColors\":true,\"closeButton\":true,\"gap\":24,\"visibleToasts\":5,\"toastOptions\":{\"className\":\"shadow-2xl border\",\"style\":{\"padding\":\"16px\",\"borderRadius\":\"12px\",\"boxShadow\":\"0 6px 20px 2px rgba(0, 0, 0, 0.2)\"}}}]\n64:[\"$\",\"$L69\",null,{\"id\":\"la-analytics\",\"strategy\":\"afterInteractive\",\"children\":\"\\n            !function(p){\\\"use strict\\\";!function(t){var s=window,e=document,i=p,c=\\\"\\\".concat(\\\"https:\\\"===e.location.protocol?\\\"https://\\\":\\\"http://\\\",\\\"sdk.51.la/js-sdk-pro.min.js\\\"),n=e.createElement(\\\"script\\\"),r=e.getElementsByTagName(\\\"script\\\")[0];n.type=\\\"text/javascript\\\",n.setAttribute(\\\"charset\\\",\\\"UTF-8\\\"),n.async=!0,n.src=c,n.id=\\\"LA_COLLECT\\\",i.d=n;var o=function(){s.LA.ids.push(i)};s.LA?s.LA.ids\u0026\u0026o():(s.LA=p,s.LA.ids=[],o()),r.parentNode.insertBefore(n,r)}()}({id:\\\"3OdiScgzn1QbhLyj\\\",ck:\\\"3OdiScgzn1QbhLyj\\\",autoTrack:true,hashMode:true});\\n          \"}]\n65:[\"$\",\"$L69\",null,{\"id\":\"crisp-chat\",\"strategy\":\"afterInteractive\",\"children\":\"\\n            window.$crisp=[];window.CRISP_WEBSITE_ID=\\\"0dd55be2-d5f3-462c-8ce0-984d1ae05ac7\\\";(function(){d=document;s=d.createElement(\\\"script\\\");s.src=\\\"/crisp/l.js\\\";s.async=1;d.getElementsByTagName(\\\"head\\\")[0].appendChild(s);})();\\n          \"}]\n"])</script>
2<script>self.__next_f.push([1,"2a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
2<script>self.__next_f.push([1,"6a:I[414638,[\"/_next/static/chunks/b2b9122c1b63621e.js\",\"/_next/static/chunks/395e51502c352751.js\"],\"IconMark\"]\n2d:[[\"$\",\"title\",\"0\",{\"children\":\"使用指南 - 静态网站托管与域名配置文档 | 上码 Upma\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"上码 (Upma) 使用指南。了解如何通过拖拽或 CLI 部署静态网站,配置自定义域名,以及针对 React, Vue, Next.js 等框架的构建设置。\"}],[\"$\",\"meta\",\"2\",{\"name\":\"keywords\",\"content\":\"网站部署教程,静态网站托管指南,Upma 使用文档,前端项目部署,自定义域名配置,Next.js 静态部署\"}],[\"$\",\"link\",\"3\",{\"rel\":\"canonical\",\"href\":\"https://www.upma.cn/docs\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"使用指南 - 静态网站托管与域名配置文档 | 上码 Upma\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"从 0 到 1 学会网站部署:拖拽上传、CLI 发布、域名绑定、框架构建配置一站式指南。\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:url\",\"content\":\"https://www.upma.cn/docs\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:site_name\",\"content\":\"上码 Upma\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:title\",\"content\":\"使用指南 - 静态网站托管与域名配置文档 | 上码 Upma\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:description\",\"content\":\"从 0 到 1 学会网站部署:拖拽上传、CLI 发布、域名绑定、框架构建配置一站式指南。\"}],[\"$\",\"link\",\"12\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.441ae040.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L6a\",\"13\",{}]]\n48:null\n"])</script>
2</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.