日常问题记录贴

菇太帷i Lv4

1. 解决 Failed to connect to github.com port 443:connection timed out

问题描述:开启了 clash for Windows后,想clone github 上的项目报错
解决:
1. 关闭梯子
2. 取消全局代理

1
2
3
4
5
6
7
8
9
取消全局代理:
git config --global --unset http.proxy

git config --global --unset https.proxy

设置走本地代理
git config --global http.proxy http://127.0.0.1:7897
git config --global https.proxy http://127.0.0.1:7897

2. 提交代码时 Git 无法识别文件名大小写

1
git config core.ignorecase false

3. 在完成复制功能时,在开发环境正常,生产环境失效

问题描述:
navigator.clipboard.writeText() 使用API进行复制功能时在开发环境正常使用,生产环境报错 Cannot read properties of undefined (reading 'writeText')

原因:
首先,Chrome 浏览器规定,只有 HTTPS 协议的页面才能使用这个 API。不过,开发环境(localhost)允许使用非加密协议。
其次,调用时需要明确获得用户的许可。权限的具体实现使用了 Permissions API,跟剪贴板相关的有两个权限:clipboard-write(写权限)和clipboard-read(读权限)。”写权限”自动授予脚本,而”读权限”必须用户明确同意给予。也就是说,写入剪贴板,脚本可以自动完成,但是读取剪贴板时,浏览器会弹出一个对话框,询问用户是否同意读取。

参考链接: 剪贴板操作 Clipboard API 教程

4. 当打包的前端项目使用静态网站部署到 1Panel 上,刷新页面会出现 404 错误

这是 Nginx 配置的问题,而不是打包配置的问题。当您使用 UmiJS 构建的单页应用 (SPA) 部署到 Nginx 服务器上时,页面刷新出现空白是因为 Nginx 默认会尝试查找服务器上与 URL 路径匹配的文件,而不是将所有请求路由到 index.html

解决方案

您需要在 Nginx 配置中添加以下设置,将所有请求重定向到 index.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
listen 80;
server_name your-domain.com; # 替换为您的域名

root /path/to/your/build; # 替换为您的构建目录路径
index index.html;

# 关键配置:将所有请求重定向到 index.html
location / {
try_files $uri $uri/ /index.html;
}

# 静态资源缓存配置(可选)
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
配置说明
  1. try_files $uri $uri/ /index.html 这行是关键,它告诉 Nginx:
    • 首先尝试匹配请求的 URI
    • 然后尝试匹配请求的 URI 作为目录
    • 如果都不匹配,则返回 index.html
  2. 这样配置后,当用户刷新页面时,即使 URL 是 /customer/list 这样的路径,Nginx 也会返回 index.html,然后由前端路由接管处理。
验证配置

修改 Nginx 配置后,记得重新加载或重启 Nginx:

1
2
sudo nginx -t       # 验证配置是否正确 
sudo nginx -s reload # 重新加载配置

这样配置后,您的应用在刷新页面时应该能够正常工作了。

  • 标题: 日常问题记录贴
  • 作者: 菇太帷i
  • 创建于 : 2024-04-28 08:45:00
  • 更新于 : 2025-09-18 06:39:53
  • 链接: https://blog.gutawei.com/2024/04/28/日常问题记录贴/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论