302 lines
9.5 KiB
HTML
302 lines
9.5 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>🔄 强制刷新浏览器缓存</title>
|
||
<style>
|
||
* {
|
||
margin: 0;
|
||
padding: 0;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
body {
|
||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||
line-height: 1.6;
|
||
color: #333;
|
||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||
min-height: 100vh;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding: 20px;
|
||
}
|
||
|
||
.container {
|
||
max-width: 800px;
|
||
background: white;
|
||
border-radius: 20px;
|
||
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
|
||
overflow: hidden;
|
||
}
|
||
|
||
.header {
|
||
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
|
||
color: white;
|
||
padding: 40px;
|
||
text-align: center;
|
||
}
|
||
|
||
.header h1 {
|
||
font-size: 2.5em;
|
||
margin-bottom: 10px;
|
||
text-shadow: 2px 2px 4px rgba(0,0,0,0.2);
|
||
}
|
||
|
||
.header p {
|
||
font-size: 1.2em;
|
||
opacity: 0.95;
|
||
}
|
||
|
||
.content {
|
||
padding: 40px;
|
||
}
|
||
|
||
.alert {
|
||
background: #fff3cd;
|
||
border-left: 4px solid #ffc107;
|
||
padding: 20px;
|
||
margin-bottom: 30px;
|
||
border-radius: 8px;
|
||
}
|
||
|
||
.alert-title {
|
||
font-size: 1.3em;
|
||
font-weight: bold;
|
||
color: #856404;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.alert-text {
|
||
color: #856404;
|
||
line-height: 1.8;
|
||
}
|
||
|
||
.steps {
|
||
margin: 30px 0;
|
||
}
|
||
|
||
.step {
|
||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||
color: white;
|
||
padding: 25px;
|
||
margin-bottom: 20px;
|
||
border-radius: 12px;
|
||
box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
|
||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||
}
|
||
|
||
.step:hover {
|
||
transform: translateY(-5px);
|
||
box-shadow: 0 6px 25px rgba(102, 126, 234, 0.4);
|
||
}
|
||
|
||
.step-number {
|
||
display: inline-block;
|
||
background: rgba(255,255,255,0.3);
|
||
width: 40px;
|
||
height: 40px;
|
||
line-height: 40px;
|
||
text-align: center;
|
||
border-radius: 50%;
|
||
font-weight: bold;
|
||
font-size: 1.2em;
|
||
margin-right: 15px;
|
||
}
|
||
|
||
.step-title {
|
||
font-size: 1.3em;
|
||
font-weight: bold;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.step-content {
|
||
margin-left: 55px;
|
||
font-size: 1.05em;
|
||
line-height: 1.8;
|
||
}
|
||
|
||
.kbd {
|
||
background: rgba(255,255,255,0.2);
|
||
padding: 5px 10px;
|
||
border-radius: 5px;
|
||
font-family: 'Courier New', monospace;
|
||
font-weight: bold;
|
||
display: inline-block;
|
||
margin: 0 3px;
|
||
}
|
||
|
||
.success {
|
||
background: #d4edda;
|
||
border-left: 4px solid #28a745;
|
||
padding: 20px;
|
||
margin-top: 30px;
|
||
border-radius: 8px;
|
||
}
|
||
|
||
.success-title {
|
||
font-size: 1.3em;
|
||
font-weight: bold;
|
||
color: #155724;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.success-text {
|
||
color: #155724;
|
||
line-height: 1.8;
|
||
}
|
||
|
||
.tip {
|
||
background: #d1ecf1;
|
||
border-left: 4px solid #17a2b8;
|
||
padding: 20px;
|
||
margin: 20px 0;
|
||
border-radius: 8px;
|
||
}
|
||
|
||
.tip-title {
|
||
font-size: 1.2em;
|
||
font-weight: bold;
|
||
color: #0c5460;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.tip-text {
|
||
color: #0c5460;
|
||
line-height: 1.8;
|
||
}
|
||
|
||
.footer {
|
||
background: #f8f9fa;
|
||
padding: 30px;
|
||
text-align: center;
|
||
border-top: 1px solid #dee2e6;
|
||
}
|
||
|
||
.btn {
|
||
display: inline-block;
|
||
padding: 15px 40px;
|
||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||
color: white;
|
||
text-decoration: none;
|
||
border-radius: 50px;
|
||
font-weight: bold;
|
||
font-size: 1.1em;
|
||
box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
|
||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||
cursor: pointer;
|
||
border: none;
|
||
}
|
||
|
||
.btn:hover {
|
||
transform: translateY(-2px);
|
||
box-shadow: 0 6px 25px rgba(102, 126, 234, 0.5);
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="container">
|
||
<div class="header">
|
||
<h1>🔄 强制刷新浏览器</h1>
|
||
<p>清除缓存,加载最新代码</p>
|
||
</div>
|
||
|
||
<div class="content">
|
||
<div class="alert">
|
||
<div class="alert-title">⚠️ 为什么需要强制刷新?</div>
|
||
<div class="alert-text">
|
||
浏览器会缓存 JavaScript 文件以提高加载速度。但当代码更新后,如果浏览器仍使用旧的缓存文件,就会出现错误。<br>
|
||
<strong>issueMarkers 错误</strong>就是由于浏览器使用了旧版本的代码导致的。
|
||
</div>
|
||
</div>
|
||
|
||
<div class="steps">
|
||
<div class="step">
|
||
<div class="step-title">
|
||
<span class="step-number">1</span>
|
||
Windows / Linux 用户
|
||
</div>
|
||
<div class="step-content">
|
||
按住 <span class="kbd">Ctrl</span> + <span class="kbd">Shift</span> + <span class="kbd">R</span><br>
|
||
或者<br>
|
||
按住 <span class="kbd">Ctrl</span> + <span class="kbd">F5</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="step">
|
||
<div class="step-title">
|
||
<span class="step-number">2</span>
|
||
Mac 用户
|
||
</div>
|
||
<div class="step-content">
|
||
按住 <span class="kbd">⌘ Command</span> + <span class="kbd">Shift</span> + <span class="kbd">R</span><br>
|
||
或者<br>
|
||
按住 <span class="kbd">⌘ Command</span> + <span class="kbd">Option</span> + <span class="kbd">R</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="step">
|
||
<div class="step-title">
|
||
<span class="step-number">3</span>
|
||
手动清除缓存
|
||
</div>
|
||
<div class="step-content">
|
||
<strong>Chrome / Edge:</strong><br>
|
||
1. 按 <span class="kbd">F12</span> 打开开发者工具<br>
|
||
2. 右键点击刷新按钮<br>
|
||
3. 选择"清空缓存并硬性重新加载"<br><br>
|
||
|
||
<strong>Firefox:</strong><br>
|
||
1. 按 <span class="kbd">Ctrl</span> + <span class="kbd">Shift</span> + <span class="kbd">Delete</span><br>
|
||
2. 选择"缓存"<br>
|
||
3. 点击"立即清除"
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="tip">
|
||
<div class="tip-title">💡 专业提示</div>
|
||
<div class="tip-text">
|
||
开发期间,建议:<br>
|
||
1. 打开浏览器开发者工具(F12)<br>
|
||
2. 进入 Network(网络)标签<br>
|
||
3. 勾选"Disable cache"(禁用缓存)<br>
|
||
这样每次刷新都会加载最新代码
|
||
</div>
|
||
</div>
|
||
|
||
<div class="success">
|
||
<div class="success-title">✅ 刷新后验证</div>
|
||
<div class="success-text">
|
||
强制刷新后,访问:<br>
|
||
<strong>农机管理 → 任务调度与跟踪 → 作业轨迹回放</strong><br><br>
|
||
|
||
如果页面正常加载且没有错误,说明缓存已清除成功!✨
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="footer">
|
||
<button class="btn" onclick="location.reload(true)">
|
||
🔄 立即强制刷新本页面
|
||
</button>
|
||
<p style="margin-top: 20px; color: #6c757d;">
|
||
刷新后,返回应用程序测试功能
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
// 添加键盘快捷键支持
|
||
document.addEventListener('keydown', function(e) {
|
||
// Ctrl+Shift+R 或 Cmd+Shift+R
|
||
if ((e.ctrlKey || e.metaKey) && e.shiftKey && e.key === 'R') {
|
||
e.preventDefault();
|
||
location.reload(true);
|
||
}
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|