git常用操作
删除tag
# 删除本地tag
git tag --delete tagName
# 删除远程tag
git push origin --delete tag tagName
删除分支
# 删除本地分支
git tag --delete branchName
# 删除远程分支
git push origin --delete branchName
# 删除本地tag
git tag --delete tagName
# 删除远程tag
git push origin --delete tag tagName
# 删除本地分支
git tag --delete branchName
# 删除远程分支
git push origin --delete branchName
目录结构
tree .
.
├── assets
│ ├── logo.png
│ └── upload.png
├── css
│ ├── chunk-vendors.css
│ ├── content.css
│ ├── popup.css
│ └── sidePanel.css
├── favicon.ico
├── index.html
├── js
│ ├── background.js
│ ├── content.js
├── manifest.json
├── options.html
├── popup.html
content.js
// content-script.js
//assets/img.avif是根目录下
async function autoUploadExtensionImage(imagePath = 'assets/upload.png') {
try {
// 1. 获取扩展内图片URL
const imageUrl = chrome.runtime.getURL(imagePath);
console.log('扩展资源URL:', imageUrl);
// 2. 直接获取二进制数据
const response = await fetch(imageUrl);
if (!response.ok) throw new Error(`HTTP错误: ${response.status}`);
// 3. 转换为File对象
const blob = await response.blob();
const file = new File([blob], 'auto_upload.png', {
type: blob.type || 'image/png',
lastModified: Date.now()
});
// 4. 执行上传操作
const input = document.querySelector('input[type="file"]');
const dataTransfer = new DataTransfer();
dataTransfer.items.add(file);
input.files = dataTransfer.files;
// 5. 触发完整事件链
['input', 'change'].forEach(eventType => {
input.dispatchEvent(new Event(eventType, {bubbles: true}));
});
} catch (error) {
console.error('自动化上传失败:', error);
throw error;
}
}
server {
server_name example.com;
access_log /var/log/nginx/proxy.access.log;
location /openai/ {
# 移除/openai路径前缀
rewrite ^/openai/(.*)$ /$1 break;
# 代理到OpenAI API
proxy_pass https://api.openai.com;
# 设置正确的请求头
proxy_set_header Host api.openai.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_ssl_server_name on;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#sse
# 取消缓冲
proxy_buffering off;
# 关闭代理缓存
proxy_cache off;
# 添加缓存状态头(如需要)
add_header X-Cache $upstream_cache_status;
}
}
nexe main.js --build
ℹ nexe 4.0.0-rc.6
✔ Already downloaded...
✔ Configuring node build: --dest-cpu=x64
✔ Finished in 5.814s
Error: python ./configure.py --dest-cpu=x64 exited with code: 1
See nexe -h for usage..
#nexe build specify python
export PYTHON=/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
from django.db import models
class MyModel(models.Model):
field1 = models.CharField(max_length=100)
field2 = models.IntegerField()
class Meta:
unique_together = ('field1', 'field2') # 联合唯一索引