feat(fillCode): 新增fillCode配置
这个提交包含在:
+2
-2
@@ -2,7 +2,7 @@ apiVersion: cert-manager.io/v1
|
|||||||
kind: Certificate
|
kind: Certificate
|
||||||
metadata:
|
metadata:
|
||||||
name: fillcode-com-crt
|
name: fillcode-com-crt
|
||||||
namespace: infra-net
|
namespace: apps
|
||||||
spec:
|
spec:
|
||||||
secretName: fillcode-com-crt
|
secretName: fillcode-com-crt
|
||||||
issuerRef:
|
issuerRef:
|
||||||
@@ -11,4 +11,4 @@ spec:
|
|||||||
group: cert-manager.io
|
group: cert-manager.io
|
||||||
dnsNames:
|
dnsNames:
|
||||||
- "fillcode.com"
|
- "fillcode.com"
|
||||||
- "*.fillcode.com"
|
- "*.fillcode.com"
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: fillcode
|
||||||
|
namespace: apps
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/rewrite-target: /fillcode
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- fillcode.com
|
||||||
|
secretName: fillcode-com-crt
|
||||||
|
rules:
|
||||||
|
- host: fillcode.com
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: halo
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
@@ -4,12 +4,13 @@ metadata:
|
|||||||
name: custom-html
|
name: custom-html
|
||||||
namespace: infra-net
|
namespace: infra-net
|
||||||
data:
|
data:
|
||||||
404.html: |
|
403.html: |
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>404 页面未找到</title>
|
<meta content="width=device-width,initial-scale=1,user-scalable=no,viewport-fit=cover" name="viewport">
|
||||||
|
<title>403 禁止访问</title>
|
||||||
<style>
|
<style>
|
||||||
* {
|
* {
|
||||||
-webkit-box-sizing: border-box;
|
-webkit-box-sizing: border-box;
|
||||||
@@ -21,12 +22,12 @@ data:
|
|||||||
margin: 0
|
margin: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound {
|
#error {
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 100vh
|
height: 100vh
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound {
|
#error .error {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
@@ -35,7 +36,7 @@ data:
|
|||||||
transform: translate(-50%, -50%)
|
transform: translate(-50%, -50%)
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg {
|
#error .error-bg {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
@@ -44,7 +45,7 @@ data:
|
|||||||
overflow: hidden
|
overflow: hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg > div {
|
#error .error-bg > div {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
@@ -52,23 +53,23 @@ data:
|
|||||||
background-color: #eee
|
background-color: #eee
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg > div:nth-child(1) {
|
#error .error-bg > div:nth-child(1) {
|
||||||
left: 20%
|
left: 20%
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg > div:nth-child(2) {
|
#error .error-bg > div:nth-child(2) {
|
||||||
left: 40%
|
left: 40%
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg > div:nth-child(3) {
|
#error .error-bg > div:nth-child(3) {
|
||||||
left: 60%
|
left: 60%
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg > div:nth-child(4) {
|
#error .error-bg > div:nth-child(4) {
|
||||||
left: 80%
|
left: 80%
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg > div:after {
|
#error .error-bg > div:after {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -105,46 +106,47 @@ data:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg > div:nth-child(1):after {
|
#error .error-bg > div:nth-child(1):after {
|
||||||
-webkit-animation: drop 3s infinite linear;
|
-webkit-animation: drop 3s infinite linear;
|
||||||
animation: drop 3s infinite linear;
|
animation: drop 3s infinite linear;
|
||||||
-webkit-animation-delay: .2s;
|
-webkit-animation-delay: .2s;
|
||||||
animation-delay: .2s
|
animation-delay: .2s
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg > div:nth-child(2):after {
|
#error .error-bg > div:nth-child(2):after {
|
||||||
-webkit-animation: drop 2s infinite linear;
|
-webkit-animation: drop 2s infinite linear;
|
||||||
animation: drop 2s infinite linear;
|
animation: drop 2s infinite linear;
|
||||||
-webkit-animation-delay: .7s;
|
-webkit-animation-delay: .7s;
|
||||||
animation-delay: .7s
|
animation-delay: .7s
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg > div:nth-child(3):after {
|
#error .error-bg > div:nth-child(3):after {
|
||||||
-webkit-animation: drop 3s infinite linear;
|
-webkit-animation: drop 3s infinite linear;
|
||||||
animation: drop 3s infinite linear;
|
animation: drop 3s infinite linear;
|
||||||
-webkit-animation-delay: .9s;
|
-webkit-animation-delay: .9s;
|
||||||
animation-delay: .9s
|
animation-delay: .9s
|
||||||
}
|
}
|
||||||
|
|
||||||
#notfound .notfound-bg > div:nth-child(4):after {
|
#error .error-bg > div:nth-child(4):after {
|
||||||
-webkit-animation: drop 2s infinite linear;
|
-webkit-animation: drop 2s infinite linear;
|
||||||
animation: drop 2s infinite linear;
|
animation: drop 2s infinite linear;
|
||||||
-webkit-animation-delay: 1.2s;
|
-webkit-animation-delay: 1.2s;
|
||||||
animation-delay: 1.2s
|
animation-delay: 1.2s
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound {
|
.error {
|
||||||
max-width: 520px;
|
max-width: 520px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
padding: 20px;
|
||||||
text-align: center
|
text-align: center
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound .notfound-404 {
|
.error .error-code {
|
||||||
height: 210px;
|
height: 210px;
|
||||||
line-height: 210px
|
line-height: 210px
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound .notfound-404 h1 {
|
.error .error-code h1 {
|
||||||
font-family: oswald, sans-serif;
|
font-family: oswald, sans-serif;
|
||||||
font-size: 188px;
|
font-size: 188px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
@@ -152,7 +154,7 @@ data:
|
|||||||
text-shadow: 4px 4px 0 #1cfafe
|
text-shadow: 4px 4px 0 #1cfafe
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound h2 {
|
.error h2 {
|
||||||
font-family: oswald, sans-serif;
|
font-family: oswald, sans-serif;
|
||||||
font-size: 42px;
|
font-size: 42px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
@@ -161,7 +163,7 @@ data:
|
|||||||
letter-spacing: 1.6px
|
letter-spacing: 1.6px
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound p {
|
.error p {
|
||||||
font-family: lato, sans-serif;
|
font-family: lato, sans-serif;
|
||||||
color: #000;
|
color: #000;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
@@ -169,7 +171,7 @@ data:
|
|||||||
margin-bottom: 25px
|
margin-bottom: 25px
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound a {
|
.error a {
|
||||||
font-family: lato, sans-serif;
|
font-family: lato, sans-serif;
|
||||||
padding: 10px 30px;
|
padding: 10px 30px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@@ -183,17 +185,17 @@ data:
|
|||||||
transition: .2s all
|
transition: .2s all
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound a:hover {
|
.error a:hover {
|
||||||
background-color: #1cfafe;
|
background-color: #1cfafe;
|
||||||
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
||||||
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound-social {
|
.error-social {
|
||||||
margin-top: 35px
|
margin-top: 35px
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound-social > a {
|
.error-social > a {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
@@ -201,43 +203,526 @@ data:
|
|||||||
margin: 0 5px
|
margin: 0 5px
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound-social > a:hover {
|
.error-social > a:hover {
|
||||||
background-color: #1cfafe;
|
background-color: #1cfafe;
|
||||||
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
||||||
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
||||||
}
|
}
|
||||||
|
|
||||||
@media only screen and (max-width: 480px) {
|
@media only screen and (max-width: 480px) {
|
||||||
.notfound .notfound-404 {
|
.error .error-code {
|
||||||
height: 122px;
|
height: 122px;
|
||||||
line-height: 122px
|
line-height: 122px
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound .notfound-404 h1 {
|
.error .error-code h1 {
|
||||||
font-size: 122px
|
font-size: 122px
|
||||||
}
|
}
|
||||||
|
|
||||||
.notfound h2 {
|
.error h2 {
|
||||||
font-size: 26px
|
font-size: 26px
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="notfound">
|
<div id="error">
|
||||||
<div class="notfound-bg">
|
<div class="error-bg">
|
||||||
<div></div>
|
<div></div>
|
||||||
<div></div>
|
<div></div>
|
||||||
<div></div>
|
<div></div>
|
||||||
<div></div>
|
<div></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="notfound">
|
<div class="error">
|
||||||
<div class="notfound-404">
|
<div class="error-code">
|
||||||
<h1>404</h1>
|
<h1>403</h1>
|
||||||
</div>
|
</div>
|
||||||
<h2>页面未找到</h2>
|
<h2>禁止访问此页面</h2>
|
||||||
<p>您正在寻找的页面可能已被删除、名称已更改或暂时不可用。</p>
|
<p>抱歉,由于安全问题您被禁止访问此页面。<br>如果您认为这是个错误,请联系我们获取帮助。</p>
|
||||||
<a href="#">首页</a>
|
<a href="mailto:admin@dev.cm">联系我们</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
404.html: |
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta content="width=device-width,initial-scale=1,user-scalable=no,viewport-fit=cover" name="viewport">
|
||||||
|
<title>404 页面未找到</title>
|
||||||
|
<style>
|
||||||
|
* {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#error {
|
||||||
|
position: relative;
|
||||||
|
height: 100vh
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
-ms-transform: translate(-50%, -50%);
|
||||||
|
transform: translate(-50%, -50%)
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
overflow: hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 1px;
|
||||||
|
background-color: #eee
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(1) {
|
||||||
|
left: 20%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(2) {
|
||||||
|
left: 40%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(3) {
|
||||||
|
left: 60%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(4) {
|
||||||
|
left: 80%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: -.5px;
|
||||||
|
-webkit-transform: translateY(-160px);
|
||||||
|
-ms-transform: translateY(-160px);
|
||||||
|
transform: translateY(-160px);
|
||||||
|
height: 160px;
|
||||||
|
width: 2px;
|
||||||
|
background-color: #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes drop {
|
||||||
|
90% {
|
||||||
|
height: 20px
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
height: 160px;
|
||||||
|
-webkit-transform: translateY(calc(100vh + 160px));
|
||||||
|
transform: translateY(calc(100vh + 160px))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes drop {
|
||||||
|
90% {
|
||||||
|
height: 20px
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
height: 160px;
|
||||||
|
-webkit-transform: translateY(calc(100vh + 160px));
|
||||||
|
transform: translateY(calc(100vh + 160px))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(1):after {
|
||||||
|
-webkit-animation: drop 3s infinite linear;
|
||||||
|
animation: drop 3s infinite linear;
|
||||||
|
-webkit-animation-delay: .2s;
|
||||||
|
animation-delay: .2s
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(2):after {
|
||||||
|
-webkit-animation: drop 2s infinite linear;
|
||||||
|
animation: drop 2s infinite linear;
|
||||||
|
-webkit-animation-delay: .7s;
|
||||||
|
animation-delay: .7s
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(3):after {
|
||||||
|
-webkit-animation: drop 3s infinite linear;
|
||||||
|
animation: drop 3s infinite linear;
|
||||||
|
-webkit-animation-delay: .9s;
|
||||||
|
animation-delay: .9s
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(4):after {
|
||||||
|
-webkit-animation: drop 2s infinite linear;
|
||||||
|
animation: drop 2s infinite linear;
|
||||||
|
-webkit-animation-delay: 1.2s;
|
||||||
|
animation-delay: 1.2s
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
max-width: 520px;
|
||||||
|
width: 100%;
|
||||||
|
padding: 20px;
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
|
||||||
|
.error .error-code {
|
||||||
|
height: 210px;
|
||||||
|
line-height: 210px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error .error-code h1 {
|
||||||
|
font-family: oswald, sans-serif;
|
||||||
|
font-size: 188px;
|
||||||
|
font-weight: 700;
|
||||||
|
margin: 0;
|
||||||
|
text-shadow: 4px 4px 0 #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
.error h2 {
|
||||||
|
font-family: oswald, sans-serif;
|
||||||
|
font-size: 42px;
|
||||||
|
font-weight: 700;
|
||||||
|
margin: 0;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 1.6px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error p {
|
||||||
|
font-family: lato, sans-serif;
|
||||||
|
color: #000;
|
||||||
|
font-weight: 400;
|
||||||
|
margin-top: 20px;
|
||||||
|
margin-bottom: 25px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error a {
|
||||||
|
font-family: lato, sans-serif;
|
||||||
|
padding: 10px 30px;
|
||||||
|
display: inline-block;
|
||||||
|
color: #000;
|
||||||
|
font-weight: 400;
|
||||||
|
text-transform: uppercase;
|
||||||
|
-webkit-box-shadow: 0 0 0 2px #000, 2px 2px 0 2px #1cfafe;
|
||||||
|
box-shadow: 0 0 0 2px #000, 2px 2px 0 2px #1cfafe;
|
||||||
|
text-decoration: none;
|
||||||
|
-webkit-transition: .2s all;
|
||||||
|
transition: .2s all
|
||||||
|
}
|
||||||
|
|
||||||
|
.error a:hover {
|
||||||
|
background-color: #1cfafe;
|
||||||
|
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
||||||
|
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-social {
|
||||||
|
margin-top: 35px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-social > a {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0 5px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-social > a:hover {
|
||||||
|
background-color: #1cfafe;
|
||||||
|
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
||||||
|
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 480px) {
|
||||||
|
.error .error-code {
|
||||||
|
height: 122px;
|
||||||
|
line-height: 122px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error .error-code h1 {
|
||||||
|
font-size: 122px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error h2 {
|
||||||
|
font-size: 26px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="error">
|
||||||
|
<div class="error-bg">
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
<div class="error">
|
||||||
|
<div class="error-code">
|
||||||
|
<h1>404</h1>
|
||||||
|
</div>
|
||||||
|
<h2>页面未找到</h2>
|
||||||
|
<p>您正在寻找的页面可能已被删除、名称已更改或暂时不可用。</p>
|
||||||
|
<a href="/">回到首页</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
5xx.html: |
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta content="width=device-width,initial-scale=1,user-scalable=no,viewport-fit=cover" name="viewport">
|
||||||
|
<title>500 服务器错误</title>
|
||||||
|
<style>
|
||||||
|
* {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#error {
|
||||||
|
position: relative;
|
||||||
|
height: 100vh
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
-ms-transform: translate(-50%, -50%);
|
||||||
|
transform: translate(-50%, -50%)
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
overflow: hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 1px;
|
||||||
|
background-color: #eee
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(1) {
|
||||||
|
left: 20%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(2) {
|
||||||
|
left: 40%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(3) {
|
||||||
|
left: 60%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(4) {
|
||||||
|
left: 80%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: -.5px;
|
||||||
|
-webkit-transform: translateY(-160px);
|
||||||
|
-ms-transform: translateY(-160px);
|
||||||
|
transform: translateY(-160px);
|
||||||
|
height: 160px;
|
||||||
|
width: 2px;
|
||||||
|
background-color: #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes drop {
|
||||||
|
90% {
|
||||||
|
height: 20px
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
height: 160px;
|
||||||
|
-webkit-transform: translateY(calc(100vh + 160px));
|
||||||
|
transform: translateY(calc(100vh + 160px))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes drop {
|
||||||
|
90% {
|
||||||
|
height: 20px
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
height: 160px;
|
||||||
|
-webkit-transform: translateY(calc(100vh + 160px));
|
||||||
|
transform: translateY(calc(100vh + 160px))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(1):after {
|
||||||
|
-webkit-animation: drop 3s infinite linear;
|
||||||
|
animation: drop 3s infinite linear;
|
||||||
|
-webkit-animation-delay: .2s;
|
||||||
|
animation-delay: .2s
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(2):after {
|
||||||
|
-webkit-animation: drop 2s infinite linear;
|
||||||
|
animation: drop 2s infinite linear;
|
||||||
|
-webkit-animation-delay: .7s;
|
||||||
|
animation-delay: .7s
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(3):after {
|
||||||
|
-webkit-animation: drop 3s infinite linear;
|
||||||
|
animation: drop 3s infinite linear;
|
||||||
|
-webkit-animation-delay: .9s;
|
||||||
|
animation-delay: .9s
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(4):after {
|
||||||
|
-webkit-animation: drop 2s infinite linear;
|
||||||
|
animation: drop 2s infinite linear;
|
||||||
|
-webkit-animation-delay: 1.2s;
|
||||||
|
animation-delay: 1.2s
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
max-width: 520px;
|
||||||
|
width: 100%;
|
||||||
|
padding: 20px;
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
|
||||||
|
.error .error-code {
|
||||||
|
height: 210px;
|
||||||
|
line-height: 210px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error .error-code h1 {
|
||||||
|
font-family: oswald, sans-serif;
|
||||||
|
font-size: 188px;
|
||||||
|
font-weight: 700;
|
||||||
|
margin: 0;
|
||||||
|
text-shadow: 4px 4px 0 #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
.error h2 {
|
||||||
|
font-family: oswald, sans-serif;
|
||||||
|
font-size: 42px;
|
||||||
|
font-weight: 700;
|
||||||
|
margin: 0;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 1.6px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error p {
|
||||||
|
font-family: lato, sans-serif;
|
||||||
|
color: #000;
|
||||||
|
font-weight: 400;
|
||||||
|
margin-top: 20px;
|
||||||
|
margin-bottom: 25px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error a {
|
||||||
|
font-family: lato, sans-serif;
|
||||||
|
padding: 10px 30px;
|
||||||
|
display: inline-block;
|
||||||
|
color: #000;
|
||||||
|
font-weight: 400;
|
||||||
|
text-transform: uppercase;
|
||||||
|
-webkit-box-shadow: 0 0 0 2px #000, 2px 2px 0 2px #1cfafe;
|
||||||
|
box-shadow: 0 0 0 2px #000, 2px 2px 0 2px #1cfafe;
|
||||||
|
text-decoration: none;
|
||||||
|
-webkit-transition: .2s all;
|
||||||
|
transition: .2s all
|
||||||
|
}
|
||||||
|
|
||||||
|
.error a:hover {
|
||||||
|
background-color: #1cfafe;
|
||||||
|
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
||||||
|
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-social {
|
||||||
|
margin-top: 35px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-social > a {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0 5px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-social > a:hover {
|
||||||
|
background-color: #1cfafe;
|
||||||
|
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
||||||
|
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 480px) {
|
||||||
|
.error .error-code {
|
||||||
|
height: 122px;
|
||||||
|
line-height: 122px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error .error-code h1 {
|
||||||
|
font-size: 122px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error h2 {
|
||||||
|
font-size: 26px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="error">
|
||||||
|
<div class="error-bg">
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
<div class="error">
|
||||||
|
<div class="error-code">
|
||||||
|
<h1>500</h1>
|
||||||
|
</div>
|
||||||
|
<h2>哎呀,服务器出了点问题!</h2>
|
||||||
|
<p>请稍后再试,或者返回主页。<br>如果问题持续存在,请联系我们,我们会尽快修复。</p>
|
||||||
|
<a href="/">回到首页</a>
|
||||||
|
<a href="mailto:admin@dev.cm">联系我们</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -0,0 +1,243 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta content="width=device-width,initial-scale=1,user-scalable=no,viewport-fit=cover" name="viewport">
|
||||||
|
<title>404 页面未找到</title>
|
||||||
|
<style>
|
||||||
|
* {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#error {
|
||||||
|
position: relative;
|
||||||
|
height: 100vh
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
-ms-transform: translate(-50%, -50%);
|
||||||
|
transform: translate(-50%, -50%)
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
overflow: hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 1px;
|
||||||
|
background-color: #eee
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(1) {
|
||||||
|
left: 20%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(2) {
|
||||||
|
left: 40%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(3) {
|
||||||
|
left: 60%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(4) {
|
||||||
|
left: 80%
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: -.5px;
|
||||||
|
-webkit-transform: translateY(-160px);
|
||||||
|
-ms-transform: translateY(-160px);
|
||||||
|
transform: translateY(-160px);
|
||||||
|
height: 160px;
|
||||||
|
width: 2px;
|
||||||
|
background-color: #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes drop {
|
||||||
|
90% {
|
||||||
|
height: 20px
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
height: 160px;
|
||||||
|
-webkit-transform: translateY(calc(100vh + 160px));
|
||||||
|
transform: translateY(calc(100vh + 160px))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes drop {
|
||||||
|
90% {
|
||||||
|
height: 20px
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
height: 160px;
|
||||||
|
-webkit-transform: translateY(calc(100vh + 160px));
|
||||||
|
transform: translateY(calc(100vh + 160px))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(1):after {
|
||||||
|
-webkit-animation: drop 3s infinite linear;
|
||||||
|
animation: drop 3s infinite linear;
|
||||||
|
-webkit-animation-delay: .2s;
|
||||||
|
animation-delay: .2s
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(2):after {
|
||||||
|
-webkit-animation: drop 2s infinite linear;
|
||||||
|
animation: drop 2s infinite linear;
|
||||||
|
-webkit-animation-delay: .7s;
|
||||||
|
animation-delay: .7s
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(3):after {
|
||||||
|
-webkit-animation: drop 3s infinite linear;
|
||||||
|
animation: drop 3s infinite linear;
|
||||||
|
-webkit-animation-delay: .9s;
|
||||||
|
animation-delay: .9s
|
||||||
|
}
|
||||||
|
|
||||||
|
#error .error-bg > div:nth-child(4):after {
|
||||||
|
-webkit-animation: drop 2s infinite linear;
|
||||||
|
animation: drop 2s infinite linear;
|
||||||
|
-webkit-animation-delay: 1.2s;
|
||||||
|
animation-delay: 1.2s
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
max-width: 520px;
|
||||||
|
width: 100%;
|
||||||
|
padding: 20px;
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
|
||||||
|
.error .error-code {
|
||||||
|
height: 210px;
|
||||||
|
line-height: 210px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error .error-code h1 {
|
||||||
|
font-family: oswald, sans-serif;
|
||||||
|
font-size: 188px;
|
||||||
|
font-weight: 700;
|
||||||
|
margin: 0;
|
||||||
|
text-shadow: 4px 4px 0 #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
.error h2 {
|
||||||
|
font-family: oswald, sans-serif;
|
||||||
|
font-size: 42px;
|
||||||
|
font-weight: 700;
|
||||||
|
margin: 0;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 1.6px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error p {
|
||||||
|
font-family: lato, sans-serif;
|
||||||
|
color: #000;
|
||||||
|
font-weight: 400;
|
||||||
|
margin-top: 20px;
|
||||||
|
margin-bottom: 25px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error a {
|
||||||
|
font-family: lato, sans-serif;
|
||||||
|
padding: 10px 30px;
|
||||||
|
display: inline-block;
|
||||||
|
color: #000;
|
||||||
|
font-weight: 400;
|
||||||
|
text-transform: uppercase;
|
||||||
|
-webkit-box-shadow: 0 0 0 2px #000, 2px 2px 0 2px #1cfafe;
|
||||||
|
box-shadow: 0 0 0 2px #000, 2px 2px 0 2px #1cfafe;
|
||||||
|
text-decoration: none;
|
||||||
|
-webkit-transition: .2s all;
|
||||||
|
transition: .2s all
|
||||||
|
}
|
||||||
|
|
||||||
|
.error a:not(:first-of-type) {
|
||||||
|
margin-left: 20px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error a:hover {
|
||||||
|
background-color: #1cfafe;
|
||||||
|
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
||||||
|
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-social {
|
||||||
|
margin-top: 35px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-social > a {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0 5px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-social > a:hover {
|
||||||
|
background-color: #1cfafe;
|
||||||
|
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
||||||
|
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 480px) {
|
||||||
|
.error .error-code {
|
||||||
|
height: 122px;
|
||||||
|
line-height: 122px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error .error-code h1 {
|
||||||
|
font-size: 122px
|
||||||
|
}
|
||||||
|
|
||||||
|
.error h2 {
|
||||||
|
font-size: 26px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="error">
|
||||||
|
<div class="error-bg">
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
<div class="error">
|
||||||
|
<div class="error-code">
|
||||||
|
<h1>404</h1>
|
||||||
|
</div>
|
||||||
|
<h2>页面未找到</h2>
|
||||||
|
<p>您正在寻找的页面可能已被删除、名称已更改或暂时不可用。</p>
|
||||||
|
<a href="/">回到首页</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -33,7 +33,7 @@ spec:
|
|||||||
# http to https重定向
|
# http to https重定向
|
||||||
ssl-redirect: "true"
|
ssl-redirect: "true"
|
||||||
# 自定义错误页面
|
# 自定义错误页面
|
||||||
custom-http-errors: "404,503"
|
custom-http-errors: "403,404,502,503"
|
||||||
# 缓存配置
|
# 缓存配置
|
||||||
http-snippet: |
|
http-snippet: |
|
||||||
proxy_cache_path /tmp/nginx-cache levels=1:2 keys_zone=cache:2m max_size=100m inactive=7d use_temp_path=off;
|
proxy_cache_path /tmp/nginx-cache levels=1:2 keys_zone=cache:2m max_size=100m inactive=7d use_temp_path=off;
|
||||||
|
|||||||
在新议题中引用
屏蔽一个用户