|
|
<!DOCTYPE html>
|
|
|
<html lang="en">
|
|
|
<head>
|
|
|
<meta charset="utf-8">
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
<title>VvvebJs 快速配置修复</title>
|
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
|
<style>
|
|
|
.config-value { background-color: #f8f9fa; padding: 2px 6px; border-radius: 3px; font-family: monospace; }
|
|
|
.status-ok { color: #28a745; }
|
|
|
.status-error { color: #dc3545; }
|
|
|
.status-warning { color: #ffc107; }
|
|
|
.copy-button { margin-left: 10px; }
|
|
|
</style>
|
|
|
</head>
|
|
|
<body>
|
|
|
<div class="container mt-5">
|
|
|
<div class="row">
|
|
|
<div class="col-md-10 mx-auto">
|
|
|
<h1 class="mb-4">🚨 VvvebJs 紧急配置修复</h1>
|
|
|
|
|
|
<div class="alert alert-danger">
|
|
|
<h4>❌ 发现严重配置问题</h4>
|
|
|
<p>你的 GitHub Token 仍然是占位符,需要立即修复才能正常保存文件。</p>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="card mb-4">
|
|
|
<div class="card-header">
|
|
|
<h3>🔧 修复步骤</h3>
|
|
|
</div>
|
|
|
<div class="card-body">
|
|
|
<div class="row">
|
|
|
<div class="col-md-6">
|
|
|
<h5>步骤 1: 获取 GitHub Token</h5>
|
|
|
<ol>
|
|
|
<li>点击下面的链接访问 GitHub:<br>
|
|
|
<a href="https://github.com/settings/tokens" target="_blank" class="btn btn-primary mt-2">
|
|
|
🔑 打开 GitHub Token 设置
|
|
|
</a>
|
|
|
</li>
|
|
|
<li class="mt-3">点击 "Generate new token (classic)"</li>
|
|
|
<li>设置名称为:<code>VvvebJs WebBuilder</code></li>
|
|
|
<li><strong>重要:勾选 "repo" 权限</strong>(完整仓库访问)</li>
|
|
|
<li>点击 "Generate token"</li>
|
|
|
<li>复制生成的Token(以 <code>ghp_</code> 开头)</li>
|
|
|
</ol>
|
|
|
</div>
|
|
|
<div class="col-md-6">
|
|
|
<h5>步骤 2: 更新 .env 文件</h5>
|
|
|
<p>找到你的 <code>.env</code> 文件,将这一行:</p>
|
|
|
<div class="bg-light p-3 rounded">
|
|
|
<code class="text-danger">GITHUB_TOKEN=YOUR_ACTUAL_GITHUB_TOKEN</code>
|
|
|
</div>
|
|
|
<p class="mt-2">替换为:</p>
|
|
|
<div class="bg-light p-3 rounded">
|
|
|
<code class="text-success">GITHUB_TOKEN=ghp_你的真实Token</code>
|
|
|
</div>
|
|
|
<div class="mt-3">
|
|
|
<h6>示例:</h6>
|
|
|
<div class="bg-light p-3 rounded">
|
|
|
<code>GITHUB_TOKEN=ghp_1234567890abcdef1234567890abcdef12345678</code>
|
|
|
<button class="btn btn-sm btn-outline-secondary copy-button" onclick="copyExample()">复制格式</button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="card mb-4">
|
|
|
<div class="card-header">
|
|
|
<h3>📋 当前配置状态</h3>
|
|
|
</div>
|
|
|
<div class="card-body">
|
|
|
<div class="row">
|
|
|
<div class="col-md-6">
|
|
|
<p><strong>GitHub Token:</strong>
|
|
|
<span class="config-value status-error">❌ 占位符 (YOUR_ACTUAL_GITHUB_TOKEN)</span>
|
|
|
</p>
|
|
|
<p><strong>GitHub Owner:</strong>
|
|
|
<span class="config-value">CaPaCaptain</span>
|
|
|
</p>
|
|
|
<p><strong>GitHub Repo:</strong>
|
|
|
<span class="config-value">VvvebJs_huggingface_db_01</span>
|
|
|
</p>
|
|
|
</div>
|
|
|
<div class="col-md-6">
|
|
|
<p><strong>GitHub Branch:</strong>
|
|
|
<span class="config-value">main</span>
|
|
|
</p>
|
|
|
<p><strong>GitHub Path:</strong>
|
|
|
<span class="config-value">pages/</span>
|
|
|
</p>
|
|
|
<p><strong>存储类型:</strong>
|
|
|
<span class="config-value">github</span>
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="card mb-4">
|
|
|
<div class="card-header">
|
|
|
<h3>🧪 修复后测试</h3>
|
|
|
</div>
|
|
|
<div class="card-body">
|
|
|
<p>修复Token后,使用以下工具验证配置:</p>
|
|
|
<div class="row">
|
|
|
<div class="col-md-4">
|
|
|
<a href="config-check.php" class="btn btn-info w-100">配置检查</a>
|
|
|
</div>
|
|
|
<div class="col-md-4">
|
|
|
<a href="github-advanced-test.php" class="btn btn-primary w-100">完整测试</a>
|
|
|
</div>
|
|
|
<div class="col-md-4">
|
|
|
<a href="editor.html" class="btn btn-success w-100">返回编辑器</a>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="card">
|
|
|
<div class="card-header">
|
|
|
<h3>❓ 常见问题</h3>
|
|
|
</div>
|
|
|
<div class="card-body">
|
|
|
<div class="accordion" id="faqAccordion">
|
|
|
<div class="accordion-item">
|
|
|
<h2 class="accordion-header">
|
|
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq1">
|
|
|
为什么需要 GitHub Token?
|
|
|
</button>
|
|
|
</h2>
|
|
|
<div id="faq1" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
|
|
<div class="accordion-body">
|
|
|
GitHub Token 是访问你的 GitHub 仓库所必需的认证凭据。没有它,VvvebJs 无法保存文件到你的 GitHub 仓库。
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="accordion-item">
|
|
|
<h2 class="accordion-header">
|
|
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq2">
|
|
|
Token 权限应该如何设置?
|
|
|
</button>
|
|
|
</h2>
|
|
|
<div id="faq2" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
|
|
<div class="accordion-body">
|
|
|
必须勾选 <strong>"repo"</strong> 权限,这包括:
|
|
|
<ul>
|
|
|
<li>repo:status - 访问提交状态</li>
|
|
|
<li>repo_deployment - 访问部署状态</li>
|
|
|
<li>public_repo - 访问公共仓库</li>
|
|
|
<li>repo:invite - 访问仓库邀请</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="accordion-item">
|
|
|
<h2 class="accordion-header">
|
|
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq3">
|
|
|
如何找到 .env 文件?
|
|
|
</button>
|
|
|
</h2>
|
|
|
<div id="faq3" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
|
|
<div class="accordion-body">
|
|
|
<code>.env</code> 文件位于 VvvebJs 根目录下。如果看不到,请确保:
|
|
|
<ul>
|
|
|
<li>显示隐藏文件(文件名以点开头)</li>
|
|
|
<li>使用文本编辑器打开</li>
|
|
|
<li>路径:<code>f:\apps\VvvebJs-master\.env</code></li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
|
<script>
|
|
|
function copyExample() {
|
|
|
const text = "GITHUB_TOKEN=ghp_";
|
|
|
navigator.clipboard.writeText(text).then(function() {
|
|
|
alert('已复制格式到剪贴板!请在后面添加你的真实Token。');
|
|
|
});
|
|
|
}
|
|
|
</script>
|
|
|
</body>
|
|
|
</html> |