配置:添加环境配置和部署文件

- 添加环境变量配置(.env, .env.dev, .env.test, .env.prod)
- 添加Docker配置(.dockerignore)
- 添加Nginx部署配置(nginx.conf)
- 添加Netlify部署配置(netlify.toml)
- 添加HTML入口文件(index.html)
This commit is contained in:
Leo 2025-10-08 02:23:45 +08:00
parent f35f60648b
commit f708ba712a
8 changed files with 148 additions and 0 deletions

8
.dockerignore Normal file
View File

@ -0,0 +1,8 @@
/node_modules
/.git
/.gitignore
/.vscode
/.DS_Store
/*.md
/dist

26
.env Normal file
View File

@ -0,0 +1,26 @@
# 项目根目录
VITE_BASE_URL = /
# 项目名称
VITE_APP_NAME = COI-ADMIN
# 路由模式 web hash
VITE_ROUTE_MODE = web
# 路由加载模式 static dynamic
VITE_ROUTE_LOAD_MODE = dynamic
# 设置登陆后跳转地址
VITE_HOME_PATH = /dashboard
# 本地存储前缀
VITE_STORAGE_PREFIX =
# 版权信息
VITE_COPYRIGHT_INFO = Copyright © 2024 Leocoder
# 自动刷新token
VITE_AUTO_REFRESH_TOKEN = Y
# 默认多语言 enUS | zhCN
VITE_DEFAULT_LANG = zhCN

2
.env.dev Normal file
View File

@ -0,0 +1,2 @@
# 是否开启服务接口代理 Y | N
VITE_HTTP_PROXY=N

6
.env.prod Normal file
View File

@ -0,0 +1,6 @@
# 是否开启压缩资源
VITE_BUILD_COMPRESS=N
# 压缩算法 gzip | brotliCompress | deflate | deflateRaw
VITE_COMPRESS_TYPE=gzip

6
.env.test Normal file
View File

@ -0,0 +1,6 @@
# 是否开启压缩资源
VITE_BUILD_COMPRESS=N
# 压缩算法 gzip | brotliCompress | deflate | deflateRaw
VITE_COMPRESS_TYPE=gzip

17
index.html Normal file
View File

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>%VITE_APP_NAME%</title>
</head>
<body>
<div id="appLoading"></div>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

17
netlify.toml Normal file
View File

@ -0,0 +1,17 @@
[build]
publish = "dist"
command = "vite build --mode prod"
[build.environment]
NODE_VERSION = "20"
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
[[headers]]
for = "/manifest.webmanifest"
[headers.values]
Content-Type = "application/manifest+json"

66
nginx.conf Normal file
View File

@ -0,0 +1,66 @@
server {
listen 80;
listen [::]:80;
# 启用 gzip 压缩
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml application/javascript;
gzip_disable "MSIE [1-6]\.";
# 设定 MIME types
include /etc/nginx/mime.types;
# 基本安全设定
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
# 增加伺服器效能的配置
client_max_body_size 100M;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
location / {
root /www;
index index.html;
try_files $uri $uri/ /index.html;
# 设定快取控制
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
# 动态内容不快取
location = /index.html {
add_header Cache-Control "no-store, no-cache, must-revalidate";
add_header Pragma "no-cache";
expires -1;
}
# 错误处理
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_intercept_errors on;
# 基本的代理设定
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}