米小米会努力
这样多条MYSQL语句能不能一句SQL搞定?
方法1:
mysql >= 8.0
WITH ranked_data AS (
SELECT *,
COUNT(*) OVER (PARTITION BY title, mark) AS count,
ROW_NUMBER() OVER (PARTITION BY mark ORDER BY COUNT(*) DESC) AS row_num
FROM t_search
WHERE mark BETWEEN 'a' AND 'z'
GROUP BY title, mark
)
SELECT *
FROM ranked_data
WHERE row_num <= 20
ORDER BY mark, count DESC;
方法2:
mysql < 8.0的
SELECT *
FROM (
SELECT *,
@rank := IF(@prev_mark = mark, @rank + 1, 1) AS rank,
@prev_mark := mark,
COUNT(*) AS count
FROM t_search
JOIN (SELECT @rank := 0, @prev_mark := '') AS vars
WHERE mark BETWEEN 'a' AND 'z'
GROUP BY title, mark
ORDER BY mark, count DESC
) AS ranked_data
WHERE rank <= 20
ORDER BY mark, count DESC;
米小米会努力
Java - Netty 服务端获取客户端的IP和端口,IP没有变化,但是端口每次访问都会改变怎么回事?
服务端代码如下:
/**
* 当有客户端与服务器连接时执行此方法
* 1.打印提示信息
* 2.将客户端ip和连接通道存储到remoteAddressChannleMap
*/
@Override
public void handlerAdded(ChannelHandlerContext ctx) throws Exception {
Channel channel = ctx.channel();
// 客户端建立连接的时候,保存其ip和通道 channel.remoteAddress().toString():/127.0.0.1:12173
InetSocketAddress remoteAddress = (InetSocketAddress) channel.remoteAddress();
System.err.println("有新的客户端与服务器发生连接。客户端地址:" + channel.remoteAddress());
remoteAddressChannelMap.put(remoteAddress.toString().substring(1), channel);
System.out.println("remoteAddressChannleMap 的 size:" + remoteAddressChannelMap.size());
// channelGroup.add(channel);
}
我们想在客户端连接服务端时保存这个channel,发现客户端的IP地址没有变化,但是端口却一直在变化,本来以为是程序占用的端口,但是cmd查询发现没有任何进程占用。请问是这到底怎么回事?
米小米会努力
如何配置双轴图的坐标轴刻度对齐?
我在使用VChart图表时,请问下这两条横坐标左右的数据可以配置对齐吗?效果相当于两条坐标轴重叠。
"1280X1280 (1).PNG" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241231/a2d283dbbe56a304e3c1c4c5e4cec619.png)
米小米会努力
el-datepicker如何做到在可输入的前提下,必须有值?
editable属性必须是true,clearable是false,这就会出现一个问题,如果摁键盘上的back按键把日期全部清空,是可以清空的,怎么阻止这种事件的发生呢?就是说阻止el-datepicker清空
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241231/f3854d265d623b0f1b8717aa58702812.png)
米小米会努力
fetch 如何发送复杂表单到PHP后台,接收并存储?
请问:一个表单里既有普通字段,也有一个文件上传的字段,是否可以使用fetch实现提交表单?
前提是使用 json 格式发送,也就是说文件的字段需要转换成字符串。
后台 PHP 使用 file_get_contents('php://input'), true) 进行接收。
请问该把需要上传的文件转换成什么?目前只知道图片可以转成 base64 ,那如果是其他格式呢,比如压缩包应该怎么整?
是不是这类不仅仅是文件上传的表单,不适合使用 fetch 进行操作。
从网上已经查过一些资料,但是并没有找到。
部分参考
"https://blog.51cto.com/lxw1844912514/2941481" (https://link.segmentfault.com/?enc=24NoTMNp0dVv2GleGDkyRQ%3D%3D.iR%2FYbB4woh4xFYyWSSrNIvGwfxGabIRxKffZqk%2FT7ycLZ1n3oIO4ZtyuF5nedsqK)
"https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader" (https://link.segmentfault.com/?enc=A4fJIlYVcrBtxS%2FgxZZiuw%3D%3D.8TTAsh33YKqkXmzetJjc2HFLw9uj4ILg%2FdI4EavNGyerm7LIUPHvh%2BvI%2Frcin%2BQFPRH%2BzwitGOHhqqN9Twf2mA%3D%3D)
"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refer..." (https://link.segmentfault.com/?enc=3UFry4Kzae%2Bme85ok59Hkw%3D%3D.IHw0W90x97TpBaLCAUApxsj7MLkyFisdy8OKW4PLyn3a0g2lX7vYN9OimAIp%2BPajpEoE5xznsGZOdYgqoQQonBAOKJABJnQLwIchHa58zkXhbR1QuRnaPaBhv1aYguEv)
米小米会努力
Apifox接口测试报404?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241215/42f4cd6d80b8e0ba06a9e92b07e8e9dd.png)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241215/73afc745c755fa188b80c05d1d5ff3bd.png)
gateway配置
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241215/43a8ee38fe957a415ace1ba8459fa093.png)
米小米会努力
关于amh如何添加ngx_pagespeed模块呢?
关于amh如何添加ngx_pagespeed模块呢?
网站用wp的话,还是有必要在nginx下搞一下加速优化的,
谁知道那个amh面板是否可以添加或者带不带该模块,用来加速wp网站的
米小米会努力
js事件不同写法的处理方式是什么?
"onclick="aa(dianji(),1000)"",你的aa函数第一个参数需要的是一个函数,而你的写法带"()"指运行dianji这个函数,把函数返回值传给aa,把dianji传给aa应该写成"onclick="aa(dianji,1000)""
没啥区别,都是事件绑定,硬说区别,就是addEventListener较前两种可以绑定多次
米小米会努力
如何使用vue3在指定页面加载cdn的js?
1. 使用 "import()"
2. 使用路由懒加载
3. 插入 "" 到页面
至于保留加载的 JS,没什么问题,并不会影响其它代码。
米小米会努力
哪位大佬可以帮我写一下图日历,技术栈vue3,有偿?
这不随手一搜就是现成的代码?
"https://github.com/w1301625107/Vue-Gantt-chart" (https://link.segmentfault.com/?enc=7khSJhdNnAGzq224WEpM3w%3D%3D.YS%2FcNayljNdSWZTUHBbrZNVinJq6BPcDbLoRD7Z%2BFkhWg%2F57bSvkvjjharhEfi%2Ff)
"https://w1301625107.github.io/Vue-Gantt-chart/demo/index.html" (https://link.segmentfault.com/?enc=QG8943ce%2FELo8OPxosOyfg%3D%3D.grQ7knDgv19jnfTHMunFaLMbNCdGX2lUTqoOoiHItkVEe80o0k5KhqBNu1OL6S1dK4%2FhVtaDeFIvQvQSsMRKvQ%3D%3D)
米小米会努力
如何处理 H5 视频在百度 APP 置顶问题?
这个问题好像解决过,原因是 百度浏览器对于 viewport 不同,会有一些特殊的处理。
""
加个 meta 标签试一下吧
米小米会努力
后端返回的html渲染后点击按钮获取dom修改行内样式,浏览器还是显示之前的样式没有动态更新?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241204/c941c349fd1fb85a4fee7d1a6b6eda71.png),这是渲染出来的页面中隐藏的dom,通过渲染出来的按钮显示,但我按钮点击后修改了行内样式,"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241204/a38708c01e822241818829afaa4be58d.png)打印出来是修改了,但还是显示不出来,浏览器跟图一一样没变化?是得让浏览器检测吗?
米小米会努力
arco design中table表格的复选框怎么拿到选中行的数据?
里的record就是你要的数据。 如果要索引的话就是 ,rowIndex就是你要的索引
米小米会努力
vue-cli创建的项目,使用web-worker计算文件内容报错?
"hash.worker.js"内容:
self.importScripts('spark-md5.min.js'); // 导入脚本
// 全量 Hash
postHashMsg = (fileChunkList) => {
const spark = new self.SparkMD5.ArrayBuffer();
let count = 0;
const loadNext = (index) => {
const reader = new FileReader();
reader.readAsArrayBuffer(fileChunkList[index].chunk);
reader.onload = (e) => {
count++;
spark.append(e.target.result);
if (count === fileChunkList.length) {
self.postMessage({
hash: spark.end(),
});
self.close();
} else {
// 递归计算下一个切片
loadNext(count);
}
};
};
loadNext(0);
};
self.onmessage = (e) => {
const { fileChunkList, type } = e.data;
if (type === "HASH") {
console.log("self onmessage===>", e, fileChunkList, type);
postHashMsg(fileChunkList);
}
};
在另外一个js文件函数引用:
import Worker from './hash.worker.js';
function calculateFileHash(fileChunkList) {
return new Promise(resolve => {
const worker = new Worker();
worker.postMessage({ fileChunkList, type: 'HASH' });
worker.onmessage = e => {
const { hash } = e.data;
if (hash) {
resolve(hash);
}
};
});
}
启动的时候报了以下错误:
Uncaught TypeError: self.importScripts is not a function
请问怎么解决这个问题?
米小米会努力
解决 JS 正则转成字符串后出现乱码?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241129/3bd8909f207ad71183d2a64a34459eb9.png)
"\u4e00"是汉字'一'的unicode编码,"\u9fa5"是汉字'龥'的unicode编码,并没有出现乱码
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241129/8f0acbcdf7fb2b19187afcbbbaa894db.png)
正则表达式也能正常运行
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241129/82a46973c53b70f551964bdaf0917293.png)
".codePointAt().toString(16)"方法可以返回字符的unicode编码
"String.prototype.codePointAt() - JavaScript | MDN" (https://link.segmentfault.com/?enc=%2FdsmM2eD35b8Yk26POjgOA%3D%3D.azL9eTmpUKLEP2cWkK12kZxUQRN0N%2BnwhOeFC1x1XsyVCZv4g5MFDrAa4n3tpBfE5HQiKJAIhwDXtLcZMvW6uxDB1dxqvC6wryNk0UbaS5p17UY9KFNAuy5mWqZg5lUenhywgHpG%2FkRJMlN7bTfYhg%3D%3D)
米小米会努力
nginx-generic-1.20 检测失败?
按此[此链接]的方式修改了/home/wwwroot/lnmp01/etc/下的nginx-host-template.conf、nginx-host-subdomain-template.conf和amh-php.ini,后有一网站php关闭,重新启动php无果。遂报:面板默认组件 nginx-generic-1.20 软件已经出错,
请您及时『检测』查看错误信息与修复问题,避免面板无法正常启动。
经检测后提示:nginx-generic-1.20
检测失败。具体报错信息"截图" (https://link.segmentfault.com/?enc=I%2FCSa%2BAGISM9w%2BpRee5Gew%3D%3D.9Twnty3cuvLd0dc2Ojl4OaS98bXDJxlu1oVG%2FatUqwNnJW0prW6hT8I6BY%2BgOW%2FSf0XsYfpxPQZXxx%2BIw8xpb135Id%2F%2BX6N89NDCHXABwxI%3D)如下:"此处" (/img/bVdaeky)
按链接重新修改为原先配置后仍无过
遂求解决方案
米小米会努力
vuetify结合print.js,怎么实现打印?
print.js 打印的时候可以接受参数 通过选择器指定打印dom元素
米小米会努力
react或者vue 如何实现ChatGPT 光标文字追随 效果?
实现下面图中效果,?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241125/07cc7747f2bebd87b66a9c1f70e98a48.png)
米小米会努力
已经使用了formData(),但请求数据格式还是json?
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241124/c17bf32412e0af30e97b62d247d818d0.png)
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241124/29dc55345f93a743392c7eaa27fa16cc.png)
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241124/9e1cf2b2ac1b9a98b6e314e92545249c.png)
这是控制台输出fd
米小米会努力
css3 3D 可以实现带有弧度的div吗?
他这字体是直的 框是弯的 直接放的图片吧。。。
米小米会努力
怎么编写支持灵活过滤的列表接口,解析前端过滤表达式?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241122/a03029f5e230f53e2afe32751a28e302.png)
米小米会努力
Flutter运行到安卓模拟器运行不了?
真机可以不? "如果是第一次运行的确需要很长时间"
但这有两个方面需要注意下:
* 设置 PUB_HOSTED_URL 以及 FLUTTER_STORAGE_BASE_URL 环境变量 "可以参考这里" (https://link.segmentfault.com/?enc=FdGUPT70vi7CF54K8M2%2BZA%3D%3D.%2FLFdFayq2DJxnbeggdN6oHmD9YS7y2p2wmL5rsofhBntO6lvozPk75hLLFa%2Fhbxh)
* 使用flutter doctor 检查flutter配置是否存在问题
真不行的话,还把仓库改回来找个梯子试试
米小米会努力
Echarts dataZoom事件如何只获取拖动结果?
let recentEntryBarGog = ...
// 基础选项
const tmp = basicOption
// 一部分一部分显示/每屏显示的数量
tmp.dataZoom = [{
type: 'inside', // 'slider',
start: 0,
end: onePShow, // 此处是百分比@20231123
throttle: 1000, //设置触发视图刷新的频率。单位为毫秒(ms)
zoomOnMouseWheel: false // 不可以通过鼠标滚轮缩放
}]
// 填充图表数据
// ETC
// 绑定图表
recentEntryBarGog.setOption(tmp)
// 开启dataZoom侦听
recentEntryBarGog.on('dataZoom', function(event) {
// 控制台中输出两次: 一次是托动开始前的和一次托动结束后的
console.log('[REZoom] section S2 dataZoom event start')
const temp = getXAxisRange(this)
console.dir(temp)
console.log('[REZoom] section S2 dataZoom event end')
})
如何让dataZoom只在托动结束后触发? 只想知道托动结束后的值
https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241114/f4325eb408b539913191faf5e7e07f2a.png
米小米会努力
vue前端错误诊断?
"vue 前端的不知什么错误" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241111/547e6b60c68a7c939715e9c244c3baff.png)
什么原因
米小米会努力
dom事件和元素等对应typescript的类型在哪查询?
你要的是这个吗?
"https://microsoft.github.io/PowerBI-JavaScript/interfaces/_no..." (https://link.segmentfault.com/?enc=N2VgyI%2FDlJXdVMbBV11CIw%3D%3D.AtgmOOBp3e4ydbV1rCOWOltm2MR4p8ROzkNQUGeK%2FTGporVk47Svy3jS9LoHpmZPhIDLeqlBqvnCVMRoVx%2FtR4ptZwhsWn3GmdX4J7lx03YdjiyoyMAjbadZqQaBwcoJ6o5hn3XeIj3s96bUdW7gCL67CVrK%2BR4FI728WfrWNYUh9Y1gK97cE1oHofvhdzwe)
米小米会努力
Vue ref 属性在不同环境下的行为差异?
因为":="data""简写语法的意思是将"data"中的每一个属性都当做"prop"传入,比如"data"是这么一个对象"{name: ref1, age: ref2}"等同于 ":name="ref1" :age="ref2"",注意"script"中的"ref"和"template"中的"ref"不是同一个概念,模板中是实例引用,编译的时候会将实例绑定到对应的"data"上,然后因为你是用的":="对象绑定,而你绑定的对象里并没有"ref"(注意这里的"ref"指的是模版上那个"ref"),所以2、3实际是没有任何数据绑定的,而"ref1"因为你是固定的属性绑定,不是动态的,能对应上,也就能绑上了。
这时候你可能会疑惑,":={ref: 'ref2'}"以及"refApi = {ref: 'ref3'}"这不是符合我上述说的吗?
因为你这里"ref"虽然对应是模版的"ref"但是你绑定的是字符串,不是某一个"ref变量"这就好比是"ref="'ref2'""【注意有两引号】
知道了以上的内容那么就可以改代码了:"const ref3 = ref(); const refApi = {ref: ref3}";这么改"ref3"就有值了
但如果你将模版中的":={ref: ref2}"你会发现还是没值,为什么呢?
"vue"的"const r = ref()"返回的其实是一个对象,当我们在"script"中要访问真正的值的时候是要"r.value"的方式访问的,但是为了方便,在模版里其实我们不需要".value","vue"实际会帮我们去做这件事,所以":={ref: ref2}"实际上相当于"ref="ref2.value"",绑定原始值肯定是不行的,所以我们这里需要用到函数的方式来绑定即":={ref: el => ref2 = el}"
完整修改如下:
区域
位置
ref2 = el }">操作
const ref1 = ref();
const ref2 = ref();
const ref3 = ref();
const refApi = {
ref: ref3
};
console.log(ref1, ref2, ref3);
然后我建议你去"VuePlayground" (https://link.segmentfault.com/?enc=%2Fqav5NtEfM5l43lErPTxLw%3D%3D.v7a65B%2BMuvjICWMR0EmjGoDBFkS8fD4j9j0GOlD50OdUz9rjhxlBGkNK%2BxeMuMJXpyk0hm99CeKa6vS%2BxnjnWAZlJBI%2B9zB0cQilkWPh5iI%2F1TUjOrbF7E8REZs8xTdaqGlUverNFg3oNa%2F7gzXTqvVEQB6rceEQlihXEZSttlZYZhufKUDprzRJUVY36ZSQZ2kurfVV%2FtL5pzCSPYjAHc7vkcomq3tJ1AXiMbsW6Jjz4YX%2BrOzpHWotfGB2DkJsQGWUoxwwcaVLMqP1bJ%2Bbfa0%2FBDoqVsAL1Gzoy3jvtrFlch7E1TZcCMY1M3So3DzFlNlItixY3fn8qCQbnhtCh%2F5kTZZziQutYf6svAfzp7S2BFSFmqb3cmexfu2tKHu2%2FwfcyjA%2BS8SM4GdEMwIZ%2FY2K5H2yBvEbMRIOGVY3%2F37cMOcJOBDHWwOOAy4m45CJo8fNfKfWV%2Bs8ObanSVngCyjEYjU00BwNeCgiBx6nQJG%2Bghy3HtYLJEqERXqVFkOhInMvcrdNS%2B05cf6zrxgvGxrxWhm8wZpSDh7EiEvCkn%2Bh9%2FD69OjYmRssilyRsU0cxpy91WvuQx20JC6zrY6qCrirb5lI1eMU49ZpIm6dEgA4jByR0IgXPM6SGrMYaCBG8aphfQ9jO%2Bb%2FQg%2Fgj9AGKkSe%2Fhk3zP9gXyfhVenZFy4%3D)看看编译后的代码,有助于你理解我上面所说的
"截屏2023-12-20 23.22.39.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241027/8b112c83cf331652d1659540deff8a2a.png)
"https://cn.vuejs.org/guide/essentials/template-syntax.html#at..." (https://link.segmentfault.com/?enc=QToOZl4eGoEGA%2F1srYCF3w%3D%3D.ap9%2FRGhmiQWOdf0xVs9bRbHPzymjOsKbk3DggY6NApi0QJ03qxZHGZVvt%2BqHQAxXbfyIrwaxjrrIgDT5WJWHzsTaozRgdPqo9ITnRujwXi8%3D)
"https://cn.vuejs.org/guide/essentials/template-refs.html#func..." (https://link.segmentfault.com/?enc=IkzdAKDTMJ0khrNu3KcSEg%3D%3D.JMBRJfXV88oy6rWRxK%2Fcg5DmLflqtFLIsw3%2FjOjBKZ0Dd8tZrt0qMVx4YTPcRn5cnmWZJ5UjPgTXuPHwWrEGeORdZaAy%2FX9dN7FHCor7px8%3D)
***
由于昨晚太晚了,只回答了为什么生产不行的原因,今天补充说明下为什么开发环境是可以的:
首先,"vue"的"script"支持"setup"属性从而简写一些代码,所以就会存在两种编译结果:
这是没有"setup"的"script":
"截屏2023-12-21 20.30.28.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241027/bedf87edff7f8b9cc93812f07aadec15.png)
这是有"setup"的"script":
"截屏2023-12-21 20.31.53.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241027/311d154aed500bddfaa79af659316305.png)
关键原因就出在这两种不同结果上,实际上除了昨天我说的那种改法,还有一种改法是改成没有"setup"的"script"形式,也就是上面的图1那样,然后你就会发现,不管开发环境还是生产环境(即"build"之后)都有值了。有没有察觉到什么?没错,在"dev"模式下,"vite"编译的结果就是没有"setup"的结果!!
"截屏2023-12-21 19.27.41.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241027/f11a70664ee556ce408d85873de2132b.png)
实际上你的确可以将"ref"定义成字符串,我们知道在"vue"实例上其实有这么个属性——"refs",它其实就是所有模版中"ref"的集合,在"vue2"时代我们都是"this.$refs.ref1"这么访问的,在"vue3"中虽然不太需要了,但是实例上依然还是有这么个属性,其实你定义的字符串代表的就是这个"refs"的"key"
"截屏2023-12-21 20.57.02.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241027/2fdda375c324d199919a4dbda69a8ce1.png)
当你绑定的是一个"ref对象"的时候则会多一步,将这个节点赋值给"ref",上图中"ref1"也存在于"refs"中;当"ref"是字符串的时候,除了绑定"refs","vue"还会检查"data"【vue2叫法,vue3中就是"setup() { return data }"里"return"出来的对象】中是否有同名的"key",有的话也会给该属性绑定:
"截屏2023-12-21 21.20.01.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241027/c9da3f238901eeb2098f95998185f9d3.png)
这也就解释了为什么改成无"setup"的"script"版本就可以了。有的同学可能会疑惑那为什么""的版本不行呢?不也是定义了同样的变量名"const ref2 ref3"吗?这是因为它们只是变量,"build"后是通过闭包访问的,并不是"vue"实例上的"state"
"截屏2023-12-21 21.14.45.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241027/98bfbf5acafa1039e7e7091f570052d0.png)
米小米会努力
Docker启动的Nginx如何解决浏览器跨域问题?
假如我有一个网站 www.simple.com ,这个对应一个静态的html网站。
还有一个API域名 api.simple.com ,这个对应后端的API接口。
假如我在www.simple.com这个网站内,去调用 api.simple.com
这个域名的接口,这个时候,在没有任何配置的情况下,两个域名不一致,浏览器就会提示跨域,阻止访问api.simple.com这个域名的接口访问。
浏览器怎么去验证是否跨域,当浏览器发现 不是同源的请求,就会发起一个 OPTIONS 请求给被访问的接口,只有接口返回了同意跨域 (Access-Control-Allow-Origin/Methods/Headers) ,浏览器才会放行这个跨域请求。
所以解决跨域的唯一方法,就是被访问的一方,设置响应头,允许被跨域访问。
你这里的配置文件,我看到都是在给 html 设置同意跨域,而不是在给接口设置同意跨域。
***
nginx 设置允许跨域,就是用add_header这个指令,添加允许跨域的请求头。
跨域问题,应该和nginx是不是在容器内运行,没有任何关系,它只和接口的OPTIONS响应有关系,响应是允许那么就可以跨域,响应是不允许,那么就不可以跨域。
***
如果你要用nginx解决跨域,配置可能这两种会比较常见:
(随手写的例子,不一定能跑,意思到了就行)
第一种方式:
server {
listen 80;
server_name www.simple.com; # 用一个域名部署前端项目
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
server {
listen 80;
server_name api.simple.com; #单独用一个api域名代理到后端,并设置允许跨域
location / {
proxy_pass http://127.0.0.1:8080;
add_header 'Access-Control-Allow-Origin' 'http://www.simple.com'; # 允许www.simple.com跨域
}
}
第二种方式:
server {
listen 80;
server_name www.simple.com; # 这里前端和后端api都使用同一个域名访问,就没有跨域的问题了。
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /api {
proxy_pass http://127.0.0.1:8080;
}
}
米小米会努力
CSS变量在父元素和子元素中的继承和覆盖规则?
css变量问题:父元素的一个变量A的值取决于该元素上定义的的另一个变量B,如果我在其子元素上重新定义一个B,并使用A做为某个属性的值,那么此时A的值是等于父元素上的变量B的值呢?还是重新定义的这个B的值呢?
.container {
--light-color: red;
--dark-color: green;
--color: var(--light-color);
}
.A, .B {
height: 100px;
}
.A {
background-color: var(--color);
}
.B {
--light-color: blue;
background-color: var(--color);
}
我想为这个组件提供两种风格,浅色和暗色,故定义了两个环境变量
--light-color: red;
--dark-color: green;
但是我想为它的子组件提供不一样的浅色风格,于是重新定义了
--light-color: blue;
最终的颜色却没有向我所想的那样,还是父元素上定义的颜色。当我检查该元素的样式时,发现父元素上的"--light-color"变量是被划掉的,应用的应该是子元素上的--light-color,与事实不符,这可能是开发者工具的一个bug吧。
"codesandbox" (https://link.segmentfault.com/?enc=koUxWYX7UVVRIibyDYmvMg%3D%3D.ZYt0z3dCBNm2sZqhA01oM9XBWL%2FfPD121RTehd2Zua3MVcYeLRaw0P8bPUAnS1wZy6%2Fd6R32pWwUbJL3Q3GcOttfCKD6xadnVc%2B6ozXIkQbgAMdjGxGIR9t%2Bhqnupg5U)
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241024/fec7b04532cb0b52c3ccce3c392df742.png)
为什么没有改变呢?
猜测:
在".container"元素上的变量有
--light-color: red;
--dark-color: green;
--color: var(--light-color);
"--color"在计算的时候只会从当前节点及其祖先节点中找这个"--light-color",所以子元素中的"--light-color"它是看不到的。
子元素".B"上的变量有
--light-color
它需要用到"--color",但是自己没有,就去父元素上找。所以还是这里的"--light-color"并没有改变".B"的颜色。
之前的想法,认为这样是可行的。是我们在考虑".B"时,将它继承的和自身定义的都集中在一起了,后定义的覆盖掉了前面的,之后再来决定".B"的变量取值,这是我们在思考css时通常的思考方式,但在这里不可行。
米小米会努力
js 调换数组顺序?点击哪一个对象就往上移动一个顺序?
js 调换数组顺序?
let arr = [
{name: '测试1', value: '100'}, // 假如这是按钮(能获取到下标0)
{name: '测试2', value: '200'}, // 假如这是按钮(能获取到下标1)
{name: '测试3', value: '300'}, // 假如这是按钮(能获取到下标2)
{name: '测试4', value: '400'}, // 假如这是按钮(能获取到下标3)
]
这个是后端返回的数组 循环遍历渲染在页面上,每条数据后面有一个按钮
点击下标为3的按钮,需要下标为3的这条数据到第一条
点击下标为2的按钮,需要下标为2的这条数据到第二条
点击那个数据后需要向上移动一下
麻烦大佬们帮我看看,这个数组的长度不是固定的4个
米小米会努力
Python await 函数执行顺序的问题?
下面这段代码中,为何 "ws.send_text("1")" 必须等待 "load_dataset("beans")" 加载完毕才会执行呢?
不应该是先执行 "ws.send_text("1")" 然后再执行 "load_dataset("beans")" 吗?
«"load_dataset"
是一个"加载模型数据集的函数" (https://link.segmentfault.com/?enc=IpPF%2BLKiiEr5rz%2FYvfK%2FjA%3D%3D.EUwwjxnJR32yszl%2B7tXqe005fCuVAqNo99SBQ19gFuL6PwMduHeQ7gp49cX8FTjQ1fvstZA8abBmJvDwV3xn%2BvbQqcIxGRQH9Dq7%2F0H73IwS0zHoRwd%2FItm8a2XvLc7g)。»
from fastapi import FastAPI, WebSocket
from datasets import load_dataset
app = FastAPI()
@app.websocket("/")
async def h(ws: WebSocket):
await ws.accept()
await ws.send_text("1")
dataset = load_dataset("beans")
await ws.send_text("2")
米小米会努力
如何使 VS Code 在自动保存后立即执行自动格式化?
需要将 codeActionOnSave 设置为 always,同时将 autoSave 设置为 onFocusChange 或者
onWindowChange。
{
"files.autoSave": "onFocusChange",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "always"
}
}
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/efb0fcc1d83da29334af6724eba64f6e.png)
相关链接:
"vscode
官方文档" (https://link.segmentfault.com/?enc=6Ct8U%2BoT8YuY3tdtzwgY9Q%3D%3D.Vwi6%2BgUoRd1SL0ahBtZTTc0G3ki7d%2F6SXnvCi%2BWOFG9DGOmjRWtveGj3tnA9C25vRvpmlxdAOgyuRZeeQwb6BA%3D%3D)
"codeActionOnSave
不适用于焦点丢失时的保存" (https://link.segmentfault.com/?enc=az%2F4DnxCou%2Fo93HiBWlA7w%3D%3D.cy3g%2Bl68gZbHBcIzDyKxhj6TiQBELlLyw%2F7b95grJVJCFSXrehtanlv8K%2F45pciMXT2xhB0TUft06pEiRNHkOQ%3D%3D)
米小米会努力
(AMH主机面)WP Mail SMTP提示:服务器证书配置错误。意味着服务器上的OpenSSL无法验证主机证书,这个怎么解决?
WP Mail SMTP服务器证书配置错误。这意味着服务器上的OpenSSL无法验证主机证书。
服务器证书配置错误。
这意味着服务器上的OpenSSL无法验证主机证书。
发生这种情况有几个原因。 可能是主机证书配置错误,或者该服务器的OpenSSL使用的是过时的CA捆绑软件。
建议的处理步骤:
验证主机的SSL证书是否有效。
请联系您的主机支持,向他们提供下面的
"用于调试的完整错误日志",并附上"此链接。" (https://link.segmentfault.com/?enc=bAbFIzQqu8D8%2B%2FAcBqupjg%3D%3D.7f2dZ6s757p%2Fu89oSociz2AGaQTN0LZXetlIp36MNSjMmgv9ZIOoA3zKMxHFj2sshS%2BaPzUoJuVHmsXgEg1eMQ%3D%3D)
使用25端口同样出现错误:
检测出问题。
这意味着您的测试邮件无法发送。
通常,返回此错误是因为以下原因之一而导致:
插件设置不正确,例如错误的 SMTP 设置、不正确的邮件程序设置等。
目前的网站服务器阻止了发送至 SMTP 服务器的连接。
您的SMTP主机拒绝连接。
错误日志:SSL-465
Versions:
WordPress: 6.4.2
WordPress MS: Yes
PHP: 8.1.26
WP Mail SMTP: 3.11.0
Params:
Mailer: smtp
Constants: No
ErrorInfo: SMTP Error: Could not connect to SMTP host. Failed to connect to serverSMTP server error: Failed to connect to server
Host: smtp.qq.com
Port: 465
SMTPSecure: ssl
SMTPAutoTLS: bool(true)
SMTPAuth: bool(true)
Server:
OpenSSL: OpenSSL 1.1.1w 11 Sep 2023
Debug:
Email Source: WP Mail SMTP
Mailer: 其他 SMTP
SMTP Error: Could not connect to SMTP host. Failed to connect to serverSMTP server error: Failed to connect to server
SMTP Debug:
2024-01-04 03:58:44 Connection: opening to ssl://smtp.qq.com:465, timeout=300, options=array()
2024-01-04 03:58:44 Connection failed. Error #2: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed [/home/wwwroot/ibox_2/domain/Site_2/web/wp-includes/PHPMailer/SMTP.php line 397]
2024-01-04 03:58:44 Connection failed. Error #2: stream_socket_client(): Failed to enable crypto [/home/wwwroot/123/domain/123/web/wp-includes/PHPMailer/SMTP.php line 397]
2024-01-04 03:58:44 Connection failed. Error #2: stream_socket_client(): Unable to connect to ssl://smtp.qq.com:465 (Unknown error) [/home/wwwroot/123/domain/123/web/wp-includes/PHPMailer/SMTP.php line 397]
2024-01-04 03:58:44 SMTP ERROR: Failed to connect to server: (0)
SMTP Error: Could not connect to SMTP host. Failed to connect to server
错误日志:非加密 25
Versions:
WordPress: 6.4.2
WordPress MS: Yes
PHP: 8.1.26
WP Mail SMTP: 3.11.0
Params:
Mailer: smtp
Constants: No
ErrorInfo: SMTP Error: Could not connect to SMTP host. Failed to connect to serverSMTP server error: Failed to connect to server SMTP code: 101 Additional SMTP info: Network is unreachable
Host: smtp.qq.com
Port: 25
SMTPSecure: string(0) ""
SMTPAutoTLS: bool(true)
SMTPAuth: bool(true)
Server:
OpenSSL: OpenSSL 1.1.1w 11 Sep 2023
Debug:
Email Source: WP Mail SMTP
Mailer: 其他 SMTP
SMTP Error: Could not connect to SMTP host. Failed to connect to serverSMTP server error: Failed to connect to server SMTP code: 101 Additional SMTP info: Network is unreachable
SMTP Debug:
2024-01-04 04:32:07 Connection: opening to smtp.qq.com:25, timeout=300, options=array()
2024-01-04 04:34:17 Connection failed. Error #2: stream_socket_client(): Unable to connect to smtp.qq.com:25 (Network is unreachable) [/home/wwwroot/ibox_2/domain/Site_2/web/wp-includes/PHPMailer/SMTP.php line 397]
2024-01-04 04:34:17 SMTP ERROR: Failed to connect to server: Network is unreachable (101)
SMTP Error: Could not connect to SMTP host. Failed to connect to server
米小米会努力
`flag.String()`返回的是什么呢?
"flag#String" (https://link.segmentfault.com/?enc=n6f6iRAxnjBPFVXe9mJA6Q%3D%3D.Pmq6QMUxUW8j6EXTBzTajemD8aEEr5BCv4McnrpiueE%3D)
«"String" defines a string flag with specified name, default value, and usage
string. The return value is the address of a string variable that stores the
value of the flag.»
返回的是一个字符串指针,里面会存储提取出的 flag 的值。
米小米会努力
升级7.01后Connection refused MySQL连接出错?
升级7.01后进入面板提示 您当前系统无法正常工作,请点击链接排查解决:Connection refused MySQL连接出错。
ssh启动mysql 提示 mysql-5.7 is not installed.
[root@www ~]# ls -l /usr/local/
total 0
drwxr-xr-x 8 root root 184 Jan 23 15:50 aegis
drwxr-xr-x 8 root root 79 Jan 21 23:17 amh-7.1
drwxr-xr-x. 2 root root 174 Jul 12 2021 bin
drwxr-xr-x. 2 root root 6 May 11 2019 etc
drwxr-xr-x 5 root www 45 Jan 5 2023 freetype-2.9
drwxr-xr-x. 2 root root 6 May 11 2019 games
drwxr-xr-x 5 root www 41 Feb 9 2023 goaccess-1.5.6
drwxr-xr-x 7 root www 67 Jan 5 2023 image_magick-7.1
drwxr-xr-x. 2 root root 6 May 11 2019 include
drwxr-xr-x. 3 root root 23 Dec 25 2019 lib
drwxr-xr-x. 3 root root 23 Dec 25 2019 lib64
drwxr-xr-x 5 root www 43 Jan 5 2023 libevent
drwxr-xr-x. 2 root root 6 May 11 2019 libexec
drwxr-xr-x 6 root root 56 Jan 5 2023 libiconv-1.14
drwxr-xr-x 6 root www 56 Jan 7 2023 libmemcached-1.0.18
drwxr-xr-x 6 root root 56 Jan 5 2023 libzip-1.3.2
drwxr-xr-x 5 root www 67 Jan 7 2023 memcached-1.6
drwxr-xr-x 10 mysql mysql 180 Jan 5 2023 mysql-5.7-p1
drwxr-xr-x 11 root root 151 Jan 5 2023 nginx-1.20
drwxr-xr-x 10 root root 103 Mar 31 2023 php-7.4
drwxr-xr-x 6 root root 75 Jan 23 16:03 pure-ftpd-1.0.49
drwxr-xr-x. 2 root root 6 May 11 2019 sbin
drwxr-xr-x. 7 root root 91 Dec 25 22:16 share
drwxr-xr-x. 2 root root 6 May 11 2019 src
[root@www ~]# ls -l /home/usrdata/
total 4
drwxr-xr-x 3 root root 18 Jan 5 2023 amcrontab
drwxr-xr-x 2 root www 76 Jan 19 23:25 amlog
drwxr-xr-x 2 root root 6 Jan 5 2023 madmin
drwxr-x--- 8 mysql mysql 4096 Jan 23 16:00 mysql-5.7
drwxr-xr-x 3 root root 28 Jan 5 2023 nginx-1.20
drwxr-xr-x 4 www www 32 Jan 5 2023 phpmyadmin
米小米会努力
登录后就报500错误,进入首页也一样,请解决办法?
目前只要一进到面板首页,或登录成功后就500出错,只能找历史连接浏览其它页面才能打开,首页就是进不去,如何修复?"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241012/4437e034886851967026194b6a84a5eb.png)
起初以为是首页的桌面插件导致的,但是卸了后还是不行,以为是授权过期导致的,续签后还是不行,怎么回事呢????
米小米会努力
这种场景,如何设计 vue 主页面分发消息给子组件?
可以使用 "vuex" 或者 "EventBus"。
以"EventBus"为例,创建一个新的 "vue" 实例,通过全局注册,让所有 "vue" 都能访问到同一个实例,然后通过 "$emit" 与 "$on"
做到跨页面、跨层级的事件监听。
只需要在要分发数据的文件中调用 "this.$bus.$emit('onMsg', msg)",需要监听的文件在 "mounted" 周期中注册监听事件
"this.$bus.$on('onMsg', function(msg))"即可。
«记得在页面卸载时调用 "this.$bus.$off('onMsg', function(msg))"关闭监听,不然可能会有重复监听的问题。»
bus.js
import vue from 'vue'
export default new vue()
main.js
import Bus from './bus'
vue.prototype.$bus = Bus
主页面
this.$bus.$emit('事件名', '数据')
子组件
this.$bus.$on('事件名', function() => {})
米小米会努力
怎么在 Liquid 中解析调用的文件(列表)类型的元字段?
怎么在 Liquid 中解析调用的文件(列表)类型的元字段?
{{ product.metafields.custom.product_pictures }}
前端输出:
["gid://shopify/MediaImage/29618884149440","gid://shopify/MediaImage/29607147634880"]
尝试:
{% assign media_ids_string = product.metafields.custom.product_pictures %}
{% assign media_ids = media_ids_string | split: ',' %}
{% for media_id in media_ids %}
{% assign media = all_images[media_id] %}
{% if media %}
{% endif %}
{% endfor %}
但是前端输出的是空白的,media 为空没有进入判断。
希望能获取到文件(列表)图片的 src
米小米会努力
springboot微信登陆怎么本地调试?
直接看 nginx 日志
米小米会努力
springboot启动时加载外部jar?
现有一个springboot项目,通过扫描二维码查询信息,比如一棵树,扫描二维码后可以看到他相关的信息。但这个项目不止有树类型,还有道路,某个物品。所以将项目分模块开发,核心模块作为一个jar包,复制提供基础服务如数据导入导出。各类型构建成单独的jar。部署时需要那种类型就加载对应的jar。这样做是为了满足不同客户需求。
尝试:
1. "java -Xbootclasspath/a:file:./libs -jar main.jar",运行后并没有加载libs中的jar
2. "java -Djava.ext.dirs=file:./libs -jar main.jar",启动异常错误: 找不到或无法加载主类 .ext.dirs=file:..libs
原因: java.lang.ClassNotFoundException: /ext/dirs=file://libs
3. "java -Dloader.path=file:./libs -jar main.jar" 与第2种一样错误
请问需要使用什么方式才能在启动时同时加载外部jar呢?
米小米会努力
java代码我这样的场景如何异步转同步?
控制器方法被调用后,发了一条消息到MQ,MQ消费后写入redis处理结果。
现在想要在控制器方法被调用后返回处理结果,目前的做法是死循环轮询判断redis有无结果,感觉好傻,有没有其他优雅的方案。
米小米会努力
解决Composer安装报错?
第一次安装Composer,已经安装了Composer-Setup.exe,在命令行输入composer config -g repo.packagist
composer
"https://mirrors.aliyun.com/composer/" (https://link.segmentfault.com/?enc=%2F%2B935AC9UsSyj5%2BIKbIl6w%3D%3D.%2FQa%2FYy3Ngv7GkB2pCa6UZTRQRcZ1zDtewdNb2CZ78Hk5yK6c9ZaZRjEUAtkOqj0%2B),执行报错了,有大佬能帮我看下怎么解决吗?感谢!
https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241009/840aa752ee2da44dd03aee7745485c63.png
米小米会努力
Git rebase操作教程:如何优雅地将多个commit合并为一个?
"rebase" 也有 "squash" 操作的,可以合并到上一个 Commit 上,自己选择处理就好了。
但是开发分支合并到测试分支为啥要合并成一个 Commit?后面如果有变更再合并不是得解决一堆冲突。
米小米会努力
echarts堆叠图,数据变化不大的情况下,如何设置趋势变化明显一点?
echarts堆叠图,数据变化不大的情况下,如何设置趋势变化明显一点?现在趋势变化不明显?有哪些方案呢?
option = {
title: {
text: 'Stacked Line'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
name: 'Direct',
type: 'line',
stack: 'Total',
data: [32.21, 32.23, 32.56, 32.19, 32.33, 32.3, 32.5]
},
{
name: 'Search Engine',
type: 'line',
stack: 'Total',
data: [34.41, 34.45, 34.40, 34.41, 34.47, 34.49, 34.45]
}
]
};
代码粘贴下面链接可看到结果:
"https://echarts.apache.org/examples/zh/editor.html?c=line-stack" (https://link.segmentfault.com/?enc=LlnSyWj6jVdA%2Fbw9nVf1XQ%3D%3D.eZ%2Beo5tho4WzEpOylBpSMdPBMkQC%2FDnyzoys%2Bt1gUf2UUZ18km%2B6z9RsbdMlS0bs4E553F%2FH%2Fs2VNbOlaARfjQ%3D%3D)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/d7ace74b2403a68d07af5aedbb3ecbe4.png)
米小米会努力
请问为什么电脑一直发送莫名奇妙的 ARP 包?
问题描述:奇怪的广播 ARP 包和不存在的 ARP 表
电脑: MacBook Air M1
网络情况: 如下
我并没有使用 172.22.128.1 这个 IP, 也没有这个 MAC 地址, 我手动删除 arp 表这个记录仍然更新出来
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/3aa8b0a5e81d2c17679e6354d4ebd110.png)
Wireshark 抓包结果: 如下
有大量的 "Who has xxx?Tell XXX", 我看 Source 的 MAC 地址是 arp 表中不存在的那个 MAC 地址,
也就是说从我本机发出来的?我也不知道该如何找到哪个进程发送的
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/c740e657c336cff9890c9106a8436c83.png)
此外, 还有和我本机通信的 ARP 包
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/4222d7a45c802644c63cfe379e393800.png)
米小米会努力
js new Blob()合并多个blob,播放失败,请教代码应该怎么写?
可以参考以下 张鑫旭 大佬的文章
"纯JS实现多个音频的拼接或者合并" (https://link.segmentfault.com/?enc=2%2FE2vJyj0hICAQqFSr7giQ%3D%3D.ol%2FUBfDZdXIHa2kLlNBR8pfE40a%2B9ExFMpW8pTSZPh0YtqbGSKt5EGokFgZKPRtlvDTxSH5%2B0s2yj%2Ft0hDDEsjzi36KAL6PPCiugimpqyp0%3D)
米小米会努力
FastAPI 静态文件 MIME 类型返回错误导致 ESM 报错 Strict MIME type checking?
类似问题:
"https://github.com/pallets/flask/issues/1045" (https://link.segmentfault.com/?enc=rrKPe6jZAEid%2B6kvvM43uQ%3D%3D.eAeZ79f99guyURahh6aJjZpoIR9gvU1kBO%2BoQM%2FlZAWpiQUFxvro8kbdOTC3to2q)
虽然👆这个是 Flask 不是 FastAPI,但原因都一样,就是 Windows 注册表因为未知原因损坏导致 MIME 类型映射有问题。
具体解决方案见评论区。
米小米会努力
PHP+MongoDB实现掘金论坛帖子功能?
php+mongodb能实现类似于”掘金“这个论坛的帖子功能,首页展示的基本上不会重复,并且都是随机的,
使用list存入文章id,然后把id变成随机的,但是重复刷新分页变成了1的话,数据又还原了,如果监听分页页数变成了1就重新排序一次的话,对于游客就不是很友好
米小米会努力
解决Vite, Vue, SSR项目在Docker中构建失败的问题?
1.不在dist里下载依赖
2.使用pm2配置文件ecosystem.config.cjs
3.docker CMD ["pm2-runtime", "ecosystem.config.cjs"]中pm2-runtime 改为pm2 安装地址
米小米会努力
如何解决绑定子目录后跳转到主站的问题?
curl -I 网址进行测试,看是301跳转还是什么状态码,
如果是301跳转,就要排查是哪里跳转的,如虚拟主机有跳转规则,或是网站程序自身的跳转。
如果非301状态,直接显示其它站内容,那估计域名没绑定成功,可以重启nginx看是否正常,
是否有报错等,使用命令:
amh nginx restart
米小米会努力
假设互联网一开始就有Ipv6的话,是不是就不需要 MAC 地址了呢?
即然 ipv6 是为了解决 ipv4 地址不够人手一个的问题。
那么如果我们不考虑历史原因,是不是一开始有 ipv6 的话那不就是人手一个了吗?MAC 地址是不是就可以不用了?
(不对,我在想这个问题的时候,MAC 地址不就已经是人手一个唯一的了吗?怎么又衍生出 ip 了呢?