小青梅
IP:
31关注数
1粉丝数
16获得的赞
工作年
编辑资料
链接我:

创作·52

全部
问答
动态
项目
学习
专栏
小青梅

按下数字键如何检测输入法是否有候选词?

const observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { }); }); observer.observe(document.getElementById("myDiv"), { childList: true, characterData: true });
0
0
0
浏览量0
小青梅

抓包魅族社区发现里面有段数据需要Json按规则转html,请教各位如何实现?

抓包魅族社区"https://www.meizu.cn/" (https://link.segmentfault.com/?enc=It8MvyQ0DAaNXEBcZW5Ezg%3D%3D.b75VlS1FPlBlkWOT5AMT97f%2BHiM6gcup%2BduDFmvXn9Q%3D) , 里面有一字段数据是json,需要按规则将key,value转html才能正常显示。求各位指点一下如何实现这种json转html。 这是大概的json数据: [ { "c": [ { "x": "8 月即将过去,9 月即将到来。距离魅族 20 系列发布已经过去了 5 个月时间,在这 5个月的时间里,魅族 20 系列陪你度过了哪些有趣且快乐的时光呢?" } ], "t": "p" }, { "c": [ { "x": "作为魅族最新的全能旗舰,各位在用上它之后,玩原神、打吃鸡、上王者,是否打出过惊为天人的操作?又是否在跑分平台上跑出过其他手机都没有出现过高分成绩呢?" } ], "t": "p" }, { "c": [ { "x": "\n从即日起至8月31日23:59,评论区晒出你的安兔兔跑分成绩,活动结束后,参与晒图跑分活动的魅友将获得 99 煤球奖励,跑分最高者更有机会赢取 999 煤球大奖。" } ], "t": "p" }, { "cv": 0, "s": "https://ssm.res.meizu.com/content/2023/08/28/4018386/140424375354139.jpg", "y": { "h": "1421px", "w": "1080px" }, "c": [ { "x": "" } ], "t": "z" }, ....... ] 规则是这样的: const tr = { t: "type", x: "text", b: "bold", th: "through", y: "style", w: "width", h: "height", s: "src", n: "name", u: "uid", c: "children", l: "italic", r: "url", p: "paragraph", h1: "header1", h2: "header2", h3: "header3", d: "divider", q: "blockquote", v: "video", k: "link", i: "image", m: "mention", tc: "topic", z: "img", cv: "cover", sc: "shopCard" };
16
1
0
浏览量312
小青梅

C语言添加药品信息模块添加内容进去和文件格式不符,并且为什么再次打开文件里面内容是乱的?

这位同学,你代码的这段的问题出在第35行,read_medicine_file函数的参数传递。在这个函数中,参数传递使用了指针的方式,但调用函数时并没有使用正确的指针类型,导致函数无法正确读取输入文件中的内容。 指针类型搞错了,在read_medicine_file函数中,参数传递使用的是char *类型的指针,但输入文件的格式是整型或双精度浮点数类型的数据,需要使用int或float类型的指针来传递数据,才能确保数据的正确性。修改一下就可以正常运行了。
0
0
0
浏览量0
小青梅

go-micro run createfile The filename, directory name, or volume label syntax is incorrect?

从你发的结果来看,执行路径好像有问题。 "go-micro new service helloworld " 这个命令会创建一个helloworld项目文件夹 你需要cd helloworld ,然后进行下一步操作,包括go-micro run 也是在helloworld文件夹下执行 https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250106/ae2319b680b9e97c93fe7425f88069e4.png
0
0
0
浏览量0
小青梅

能帮看一下这个"multiple definition"的make报错吗?

莫名其妙解决了. 简而言之就是 1.试试看static,extern. 2.每次变动源代码后都要make clean再重新make否则看不到变化.
0
0
0
浏览量0
小青梅

在二维平面上,有一点p(x,y),有一个三角形ABC,顶点坐标为A(x1,y1),B(x2,y2),C(x3,y3),如何判断点P是否在三角形内或在三角形的边上?

问题一: public class GeometryUtils { public static void main(String[] args) { System.out.println(isPointInTriangle(1, 1, 0, 0, 2, 0, 0, 2, 1, 1)); System.out.println(findLineSegmentsIntersection(0, 0, 0, 1, 1, 0, 1, 1, 0)); } public static boolean isPointInTriangle(double px, double py, double ax, double ay, double bx, double by, double cx, double cy) { double sABC = Math.abs(ax * by + bx * cy + cx * ay - ax * cy - bx * ay - cx * by) / 2.0; double sPAB = Math.abs(px * ay + ax * by + bx * py - ax * py - px * by - bx * ay) / 2.0; double sPAC = Math.abs(px * ay + ax * cy + cx * py - ax * py - px * cy - cx * ay) / 2.0; double sPBC = Math.abs(px * by + bx * cy + cx * py - bx * py - px * cy - cx * by) / 2.0; return Math.abs(sPAB + sPAC + sPBC - sABC) = 0 && t = 0 && s <= 1) { result[0] = x1 + t * (x2 - x1); result[1] = y1 + t * (y2 - y1); result[2] = z1 + t * (z2 - z1); return result; } else { return null; // 线段无交点 } } }
0
0
0
浏览量0
小青梅

vue动态添加子路由问题?

this.$router.addRoute('name123',{ // 添加子路由只需把 addRoute第一个参数 填写 父级路由的name即可 path:'456', component: () => import("@/views/xxx.vue"), name: "name456", meta: { title: "子路由 " }, })
0
0
0
浏览量0
小青梅

js 如何转换一大堆特殊符号为纯数字?

比如这样一堆字符 ~Yd.a.D7L`-WI=:3D7t=K8BlX|[7\j]}Ou}'O0JptRY^0F3Z6Z/|au^r6?nqOl47U$oPm?-o"aB`FXbu^=Y>9v/'(n=,8FIky9'joXxnD%F82a_sg_hD}g|;R`8]k+WE-hW{&aKfTPOKPS`EKx{"0\dMJi.oNTC{ml3K}kf>Vw#UyYUy]m`b"0pXQ#9oirZ[J^0DoPiR*"__p9c<|_fGBB'vj]W#w~XPz7K=9rUF@mz%p[[8Ys(LNajwDnO;e)=OP!9kd}\b!S"S/$Y7
12
1
0
浏览量285
小青梅

原生css能否实现这样的效果?

html 代码 ADHASKJ XNAS CSDLVL "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241219/e04d54b6f1a9aa6597c2114b1f6a63d2.png) 1,2,3 是自增长的 后来我试了下 ol-li 标签, 但是列表头样式不知道怎么调..
css
14
1
0
浏览量364
小青梅

CSS问题,这种怎么做到?

文本1 已到期 文本2 即将到期 .container { display: flex; justify-content: flex-end; align-items: center; margin-bottom: 10px; } .label { padding: 5px; margin-left: 10px; } .red-bg { background-color: red; } .orange-bg { background-color: orange; } .text { white-space: nowrap; }
0
0
0
浏览量0
小青梅

为什么用nuxt3开发网站 用sticky 做顶吸效果在移动端会出错?

移动设备的浏览器或 webview 太旧,不支持 sticky 吧,跟 nuxt 无关。
0
0
0
浏览量0
小青梅

没有什么好的思路,这种菜单应该怎么画呢?

"1696638061(1).png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241213/87973de8c24c9ebe1a8c84c0eefc86df.png) 菜名和价格可以左右对齐,但是这中间的虚线或者点应该怎么做,放在他们中间,我没什么好的思路 我目前想的是设一个基准,比如说一百个‘·’,然后菜名多一个字就减去几个点,价格多一位就减去几个点,这个思路,但是又感觉不一定对得齐
0
1
0
浏览量14
小青梅

这种根据录音时分贝大小实时展现波浪大小的效果如何实现?

查看本站文章: «"https://segmentfault.com/a/1190000021613428" (https://segmentfault.com/a/1190000021613428)» MDN官方教程: «"https://developer.mozilla.org/zh-> CN/docs/Web/API/Web_Audio_AP..." (https://link.segmentfault.com/?enc=XM7QxDp74ryRGTPP4XYz%2Fw%3D%3D.yM02IHJGL7k3yEZ4GpGNQ4oo%2BGEUxk2rgi9p3UVaxKPvyUJiIQm%2FH9zdg4cjT5IwgLwiNT1HivvxRbtFRZVVliao9iHUsh%2FRqbWIOuAgVG5dUhsVI98dVLjaVOJKLrpV2NRgjrhruh%2Bb0gxYMaK58w%3D%3D)»
0
0
0
浏览量0
小青梅

滑块滚动缓冲效果的实现?

"https://www.17sucai.com/pins/44884.html" (https://link.segmentfault.com/?enc=%2Bo9miQC9LNx8xB7yBIjiUw%3D%3D.y3SREWutru%2FbTS147edmSLy3e0W3SBGoWXO2bXi8o0YEq%2FNWLnAmquOw6A9vicyZ) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241208/0a61522f395ec002bfffc751c6daa759.png) 这个演示页面每次用鼠标滚轮滚动的时,页面滚动都是由快到慢,是怎么实现的? 好像用Edge浏览器也有类似的效果?
0
1
0
浏览量12
小青梅

MySQL 如何有效率的获取 用户 被授权的分级结构(需要支持分页)?

查其中一个 User 被授权的 F 列: (SELECT F.F_id, F.F_name, F.F_area FROM P JOIN F ON P.F_id = F.F_id OR P.F_id = 0 WHERE P.U_id = @user_id AND (P.D_id = F.D_id OR P.D_id = 0) AND (P.E_id = F.E_id OR P.E_id = 0) AND (P.A_code = F.F_area OR P.A_code = "") ORDER BY F.F_id LIMIT x, y) -- x 是起始索引,y 是每页的数量 查其中一个 User 被授权的 E 列表: sql (SELECT E.E_id, E.E_name FROM P JOIN E ON P.E_id = E.E_id OR P.E_id = 0 WHERE P.U_id = @user_id AND (P.D_id = E.D_id OR P.D_id = 0) ORDER BY E.E_id LIMIT x, y) 查其中一个 User 被授权的 D 列表: (SELECT D.D_id, D.D_name FROM P JOIN D ON P.D_id = D.D_id OR P.D_id = 0 WHERE P.U_id = @user_id ORDER BY D.D_id LIMIT x, y)
0
0
0
浏览量0
小青梅

请问是否有antd/tree方法可以一键展开所有节点呢?

在学习组件"tree" (https://link.segmentfault.com/?enc=zt6slVP7Jt4iRXWu2y58AA%3D%3D.Uqo6ZDG6lLS09n%2BPp0dDK5JvR%2FiPFN1YQHFo2v5E9U%2Fo5i%2BTaN6xNeEAoBxe0PIir9z1UvEVw2rFYgHXyZ1M3w%3D%3D)的时候: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241129/66a2d16dc723d62064fbbb1dfe981f31.png) 请问是否有方法可以一键展开所有节点呢? *** 编辑1: 因为我设置了defaultExpandAll没有效果,所以想要知道是否有方法可以对进行展开所有? return ;
0
1
0
浏览量12
小青梅

vue3 watchEffect 自动卸载时机引发的疑问?

首先你这里存在一个误解,"watchEffect" 不是和页面产生的绑定关系,而是传入 "watchEffect" 的回调函数与函数中用到的"响应式状态"产生的绑定关系,也就是所谓的依赖搜集 关键在这里,你定义了一个无法回收的 "setInterval",页面拉起来后将一直运行,而你 A -> B 只是单纯的前端路由跳转,本质还是同一个页面,所以不会影响 "setInterval" 持续运行, "setInterval" 没有被清理掉,"count" 就会一直变,继而 "watchEffect" 的回调也会一直执行 setInterval(() => { count.value++; // 不停 +1 console.log("count.value", count.value); }, 1000); 要解决这个现象么在跳转路由前清理掉 "setInterval",要么 stop 掉 "watchEffect", 但按照你这种用法,两个都应该清理,因为这里 "watchEffect" 的回调引用的是一个全局的响应式状态,不手动 stop 掉的话,跳转路由后该回调函数所占用的内存是无法被回收的 另外,还有一个细节,同步的 "watchEffect" 会挂在组件实例上,随组件销毁而销毁;而异步创建的需要手动清理,具体看官方文档 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241120/2fb73a699d50991ddc71484d601dfa94.png)
0
0
0
浏览量0
小青梅

查询名下手机号的api?

理论上就算有这玩意,也会被下架的,基于国家的政策是不允许公司公布这些关联信息的
0
0
0
浏览量0
小青梅

关于Trait签名不一致 和 Deref 的一些问题?

今天在做rustlings的练习题遇到了一些自己不太理解的地方, 望大佬能指点一下, 谢谢. // traits2.rs // // Your task is to implement the trait `AppendBar` for a vector of strings. To // implement this trait, consider for a moment what it means to 'append "Bar"' // to a vector of strings. // // No boiler plate code this time, you can do this! // // Execute `rustlings hint traits2` or use the `hint` watch subcommand for a hint. // I AM NOT DONE trait AppendBar { fn append_bar(self) -> Self; } // TODO: Implement trait `AppendBar` for a vector of strings. impl AppendBar for Vec { fn append_bar(mut self) -> Self { // Borrow self as `mut` self.push("Bar".to_string()); self } } #[cfg(test)] mod tests { use super::*; #[test] fn is_vec_pop_eq_bar() { let mut foo = vec![String::from("Foo")].append_bar(); assert_eq!(foo.pop().unwrap(), String::from("Bar")); assert_eq!(foo.pop().unwrap(), String::from("Foo")); } } 第一个问题: 在impl AppendBar for Vec的时候 特征和实现的函数签名不一致, 这样是可以的吗? 第二个问题: self.push("Bar".to_string()); push的函数签名需要&mut self, 这应该和Deref没有关 系, 我记得隐式的调用Deref需要&T, Box, Cell总之是需要外面包裹一层指针才会隐 式的调用Deref, 请问这里为什么可以直接使用push
0
1
0
浏览量12
小青梅

input 上传图片如何不通过blob获取到图片的宽高?

let reader = new FileReader(); reader.onload = function (e) { let img = new Image(); img.onload = function () { console.log(img.width, img.height); }; img.src = e.target.result; }; reader.readAsDataURL(files[0]); // 假设files[0]是你的图片文件
0
0
0
浏览量0
小青梅

turnjs怎么设置成无封面的状态 ?

$("#flipbook").turn({ display: 2, // 禁用封面 // 其他配置... });
0
0
0
浏览量0
小青梅

React 中 clearInterval为什么无效?

我就不给你说原因了,解决方案是这个timer对象要么放在函数组件之外,要么用useRef包裹。
0
0
0
浏览量0
小青梅

公司安全软件导致部分应用无法打开,如何解决?

可能是安全软件,阻止的该软件的服务请求,你可以看看是不是有配置,或者白名单
0
0
0
浏览量0
小青梅

Kmeans如何应用于类别不平衡的数据上(用kmeans做工具)?

Kmeans如何应用于减轻类别不平衡的数据上,然后用来训练其他模型? 用kmeans做工具,不是用不平衡数据区训练kmeans! 举例: 训练数据中A,B,C,D,其中A B类别很多 CD很少; 预测数据中全部是A,C。 此时用kmeans直接把ABCD 聚类成2个? 查看过一些博客,基本上都是水文,没多少有用价值。。。
0
1
0
浏览量13
小青梅

Java 如何批量取消 Excel 的条件格式?

Java 如何批量取消 Excel 的条件格式 我想通过java代码将excel文件中的条件格式删除。
0
1
0
浏览量15
小青梅

css grid 布局如何实现第一排3个第二排3个的效果?

效果如图: "98351703035526_.pic.jpg" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241028/1aca068ccd57f62238e114af14e5d57a.png) 我是用两个 gird 写的,有没有办法用一个 grid 实现,主要是第一行是三等分,导致第二行grid area不好写。
0
1
0
浏览量20
小青梅

vue3 render+el-select不能回显是什么问题?

找到原因了,conten不是写的函数,这样定义是一个常量了,肯定不会变化了
0
0
0
浏览量0
小青梅

springboot 配置redis 一直报 Connection reset 错误怎么办?

感谢"@lpe234" (/u/lpe234) 提供的答案;是 "redis" 版本3.x 导致的问题;目前测试升级到5.x版本后没在出现 "connection reset" 问题。
0
0
0
浏览量0
小青梅

replicas:3 是指的运行中的pod+2个备用的pod吗, 还是指的1个运行中的pod和3个备用的副本?

replicas:3 就是同时跑3个副本,他们的状态都是在运行中的状态
0
0
0
浏览量0
小青梅

axios设置超时时间不生效是什么原因?

你可以尝试一下把timeout这样写 const service = axios.create({ ......,相关配置 // 超时时间 单位是ms,这里设置了3s的超时时间 timeout: 3 * 1000 })
0
0
0
浏览量0
小青梅

开发环境中控制台打印?

"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/319c12bf1147a1accf62c2c28bdae949.png)(图一) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/0f3c497ec75152d8b8a7e9dddfa1479f.png)(图二) 都是开发环境,以前打印的是图二 现在不知道什么原因打印的是图一的,怎么才能变为图二的?有遇到过这样问题的小伙伴吗? 1
0
1
0
浏览量13
小青梅

如何在Vue.js中处理异步数据加载和渲染?

一个select框组件,其中的数据是从后端返回的,打开这个组件时往里传入了value值,但是页面打开时也会显示这个value值,等后端结果返回才能显示对应的label值,如何让组件先不渲染value直接渲染label? 将请求的生命周期放在async created中没用
0
1
0
浏览量12
小青梅

vue3 报错 v-model value must be a valid JavaScript member expression ?

v-model需要绑定的是一个变量(一个对象), 而不是一个字符串
0
0
0
浏览量0
小青梅

echart柱状图(多数据)点击事件params.name会重复?

正常只会有一个,看下是不是你注册事件的代码会有重复执行的情况,导致事件注册了多个
0
0
0
浏览量0
小青梅

如何在JavaScript中解密Base64加密的JSON数据?

后台返回的json数据经过Base64加密,js怎么解密? ........
0
1
0
浏览量115
小青梅

chatgpt 是如何实现“继续生成”功能的?

首先chatgpt无法一次性输出是因为openai对其进行了限制 一次只能输出1024字节 防止攻击者的非法攻击 所以chatgpt继续生成无非是分成多次返回值 需要注意的是 gpt这样的大模型是实时生成,有反馈机制,每一个字的生成都会依赖前面的字(所以我们可以看到gpt的回答是一个字一个字吐出来的),所以继续生成也没有用到什么别的高科技,无非是openai开放了这个功能。
0
0
0
浏览量0
小青梅

uniapp种引入uni-list组件失败?

不在page.json中引入就可以正常使用了,那这个easycom主要是用来干嘛的呢
0
0
0
浏览量0
小青梅

网站和接口在同一个服务器接口无法访问nginx该如何配置?

前端和服务端都部署在同一个服务器上,使用nginx进行转发接口的请求,但是报错, [error] 15880#15880: *57 connect() failed (111: Connection refused) while connecting to upstream, client: 172.8.203.147, server: , request: "GET /v1/user/list?pageIndex=0&pageSize=18&text= HTTP/1.1", upstream: "https://127.0.0.1:3000/v1", host: "www.test.cn", referrer: "https://www.test.cn/" 我请求的连接是如下 https://www.test.cn/v1/user/list?pageIndex=0&pageSize=18&text= 我想的是,通过test.cn域名会访问到服务器默认端口上,然后让nginx转发到对应的服务端口上,比如我的配置是转到了3000端口上 location \v1{ proxy_pass "https://127.0.0.1:300/v1"; } 结果就报上面的错误,这个该如何解决,或者我这种部署方式咋弄比价好呢? *** 我的配置如下: location ~* /v1/ { set $backend "https://127.0.0.1:3100/v1"; # 默认的后端服务器地址 if ($scheme = http) { # 判断请求的协议为 HTTP set $backend "http://127.0.0.1:3100/v1"; # 将$backend设置为对应的后端服务器地址 } proxy_pass $backend; # 使用$backend作为proxy_pass的参数 # add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate"; add_header Content-Type "application/json"; }
0
1
0
浏览量154
小青梅

CSS 三角效果在不同缩放比例下的解决方案?

可以考虑把::before里的px全都换成百分百或者rem这类的表达方式。 你的代码太复杂,可以参考:"https://segmentfault.com/a/1190000014730523" (https://segmentfault.com/a/1190000014730523) 根据你最新的效果图:我给出以下解决方案: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241006/9df0fa81dca778fe9e0fbf72543f934d.png) 给三角画一个菱形,覆盖到左侧矩形上
0
0
0
浏览量0
小青梅

VUE3修改文件大小写后引入组件报错,怎么解决?

VUE3项目中,文件夹名修改了大小写,就报错。 一开始组件是cleanData/form.vue,我重命名为CleanData/editForm.vue。引入组件时,还提示之前的form.vue,选择editForm.vue之后就报错(第二张图) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/c7ecca2264ab5ea319ade93b48feffb2.png) 报错说仅大小写不同,重启项目也没用。为啥会这样呢? "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/31f4722ba43acb23c6367bc7149b1dcb.png) 我百度试了不写.vue也不行: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/a98ee09878b5a1a99d24bf6c975735f6.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/2c1c9e911e3385c6b5c00fbaa2e1081e.png)
0
1
0
浏览量182
小青梅

关于 React Server Components 和 Context 的矛盾?

首先需要说明一点:并不是所有被使用 ""use client"" 的 "Context.Provider" 包裹的子组件都会渲染成 "RSC(React Server Components)",而是只有消费 "Context"(使用了 "useContext(Context)" )的子组件才会被渲染成为 "RSC"。如下图所示: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241003/e1f26235a0add8b9049b302e40ab056b.png) 然后我个人认为 "nextjs" 这种处理方式其实十分合理,因为组件消费 "Context" 的行为本身就表明这个组件是有状态的,不应该也不能被静态渲染成服务端组件。这种处理方式既保留了 "RSC" 的静态渲染的优点,同时也提供了客户端组件消费 "Context" 状态的能力。 希望我的回答对题主有所帮助~
0
0
0
浏览量0
小青梅

css 如何实现梯形?

想要的效果"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241003/597183e98dc9baa07ebf0a8da7210ea6.png) 如何使用以下 html 只修改 css 不增加元素的前提下实现上边的效果 1 2 3 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241003/a3799bed57f5ea213a3b1c6d419ff11e.png)
0
1
0
浏览量151
小青梅

rust代码无法在部分机器上正常启动?

rust代码无法在部分机器上正常启动 部署的机器都是Debian12 x86架构 main.rs use std::sync::atomic::AtomicBool; use std::sync::Arc; mod watchdog; mod web; static mut NORMAL_LIST: Vec = Vec::new(); static mut REALITY_LIST: Vec = Vec::new(); #[tokio::main] pub async fn main() { // 处理 Ctrl-C 信号 let running = Arc::new(AtomicBool::new(true)); ctrlc::set_handler(move || { std::process::exit(0); }) .expect("Error setting Ctrl-C handler"); tokio::spawn(async { watchdog::start_watch().await; }); tokio::spawn(async { web::start_web().await; }); while running.load(std::sync::atomic::Ordering::Relaxed) { tokio::time::sleep(tokio::time::Duration::from_secs(1)).await; } } web.rs use rand::seq::SliceRandom; use salvo::http::HeaderValue; use salvo::http::StatusCode; use salvo::logging::Logger; use salvo::prelude::*; use crate::*; #[handler] pub async fn avatar(res: &mut Response, req: &Request) { // 获取 Host let host = match req.headers().get("Host") { Some(t) => t.to_str().unwrap(), _ => { res.status_code(StatusCode::BAD_REQUEST); return; } }; // 拼接字符串,转成url编码 let host = host.splitn(2, '.').nth(1).unwrap_or(""); let host = format!("resources.{host}"); // 获取 协议类型 let protocol = match req .headers() .get("scheme") .unwrap_or(&HeaderValue::from_static("https")) .to_str() .unwrap() { "http" => "http", _ => "https", }; // 拼接字符串,转成url编码 let host = host.splitn(2, '.').nth(1).unwrap_or(""); let host = format!("resources.{host}"); // 随机从 NORMAL_LIST 中选择一个文件名 unsafe { let file_name = urlencoding::encode(NORMAL_LIST.choose(&mut rand::thread_rng()).unwrap()); res.render(Redirect::found(format!( "{protocol}://{host}/avatar/{file_name}" ))); } } #[handler] pub async fn random(res: &mut Response, req: &Request) { // 获取查询参数 let img_type = match req.query::("type") { Some("reality") => "reality", _ => "normal", }; // 获取 Host let host = match req.headers().get("Host") { Some(t) => t.to_str().unwrap(), _ => { res.status_code(StatusCode::BAD_REQUEST); return; } }; // 拼接字符串,转成url编码 let host = host.splitn(2, '.').nth(1).unwrap_or(""); let host = format!("resources.{host}"); // 获取 协议类型 let protocol = match req .headers() .get("scheme") .unwrap_or(&HeaderValue::from_static("https")) .to_str() .unwrap() { "http" => "http", _ => "https", }; // 随机从中选择一个文件名 unsafe { let file_name = match img_type { "reality" => urlencoding::encode(REALITY_LIST.choose(&mut rand::thread_rng()).unwrap()), _ => urlencoding::encode(NORMAL_LIST.choose(&mut rand::thread_rng()).unwrap()), }; res.render(Redirect::found(format!( "{protocol}://{host}/{img_type}/{file_name}" ))); } } pub async fn start_web() { tracing_subscriber::fmt().try_init().unwrap(); let router = Router::with_path("yuri") .push(Router::with_path("random").get(random)) .push(Router::with_path("avatar.jpg").get(avatar)); let service = Service::new(router).hoop(Logger::new()); let acceptor = TcpListener::new("127.0.0.1:8081").bind().await; Server::new(acceptor).serve(service).await; } watchdog.rs use hotwatch::{Event, Hotwatch}; use std::fs; use std::thread::sleep; use std::time::Duration; use crate::*; pub async fn start_watch() { // 获取目录下所有文件名 for path in fs::read_dir("../data/output/normal").unwrap() { unsafe { NORMAL_LIST.push(path.unwrap().file_name().to_str().unwrap().to_string()); } } for path in fs::read_dir("../data/output/reality").unwrap() { unsafe { REALITY_LIST.push(path.unwrap().file_name().to_str().unwrap().to_string()); } } let mut hotwatch = Hotwatch::new().expect("hotwatch failed to initialize!"); hotwatch .watch("../data/output/normal", |event: Event| match event.kind { _ => { // 清空 NORMAL_LIST unsafe { NORMAL_LIST.clear(); } // 获取目录下所有文件名 for path in fs::read_dir("../data/output/normal").unwrap() { unsafe { NORMAL_LIST.push(path.unwrap().file_name().to_str().unwrap().to_string()); } } } }) .expect("failed to watch file!"); hotwatch .watch("../data/output/reality", |event: Event| match event.kind { _ => { // 清空 NORMAL_LIST unsafe { REALITY_LIST.clear(); } // 获取目录下所有文件名 for path in fs::read_dir("../data/output/reality").unwrap() { unsafe { REALITY_LIST.push(path.unwrap().file_name().to_str().unwrap().to_string()); } } } }) .expect("failed to watch file!"); loop { sleep(Duration::from_secs(1)); } } 部分成功启动机器截图,请忽略找不到路径的报错 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241002/bfa573b7335b12602510e905c9220489.png) 启动失败机器截图 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241002/8d1378fbe79deedf4105592a744043d3.png) 尝试1 更改x86_64-unknown-linux-gnu为x86_64-unknown-linux-musl 无效 尝试2 在watchdog.rs中添加输出代码可以正常输出,在web.rs中进行同样操作没有输出 求大佬解答
0
1
0
浏览量111
小青梅

Paypal订阅与业务系统如何整合?

paypal的订阅不能和自己的业务系统挂钩吗? 创建商品-创建计划-然后得到计划id 给前端拉起 。但是不应该我创建了业务系统订单 然后触发用户订阅 然后回调改成支付吗? 问题他这订阅没这种让用户传递订单号的接口 "https://developer.paypal.com/docs/subscriptions/integrate/" (https://link.segmentfault.com/?enc=faO5izVrCQhzgwTEmL6dJg%3D%3D.Lp0brKJfFD31Mx4iIhlxxKKfHBV7BH61uwOgmpHhnOLR45oRK3UXJHw8h%2BMKwpxq6FRR5GCz4IhG%2BUNS0DDN4Q%3D%3D)
0
1
0
浏览量153
小青梅

vue3 组件实例未销毁?

* 你还在用的变量都不会销毁,即使只是console.log。 * 定时器需要手动销毁,如果嫌麻烦,可以自定义一个hook,比如 "useMyInterval" * 即使定时器销毁了,但你的网络请求依然在执行,也只能手动abort请求或者组件销毁后判断以下,不执行请求回调里的操作
0
0
0
浏览量0
小青梅

若依前后端分离版,添加角色,第一次进来的时候,内容显示错乱,如何解决呢?

使用的若依前后端分离版,前端是vue2,点击添加角色,第一次进来的时候,内容显示有点乱,刷新页面,再打开就好了,如何解决呢 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241001/e243840a9c6b8563ec149badfa58252f.png) 权限字符 {{dict.label}} 展开/折叠 全选/全不选 父子联动 确 定 取 消
0
1
0
浏览量154
小青梅

亚马逊连接故障如何解决?

亚马逊服务器之前还好好的可以连上,后面突然连不上了 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240930/fe52ada16c890f1f3e817ad88a7bd3ae.png) 1、首先亚马逊控制台中的实例是启动的且不是防火墙和安全组导致的 2、因为通过其他网络是可以访问的(就我本机网络地址无法telnet通导致xshell无法远程连接) 请问大概由什么原因导致的?如果说我想再通过本机访问该用什么方法?
0
1
0
浏览量128
小青梅

pnpm workspace,管理项目monorepo问题?

pnpm的monorepo问题, packages: * 'main' * 'web/**' * 'common' * 'common2' common的package.json { "name": "common", "version": "1.0.1", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" } 在main文件里面pnpm -F main add common 但是添加的包,不是本地的,这个是什么问题 改动common的version版本号,子项目不能以0开头的版本号, pnpm -F main add @project/common 也是不行, 是404,走npmjs库了 // =========================================== windows: node -v: v16.20.0 pnpm -v: 8.6.7 pnpm -F main common 完全ok ubuntu: node -v: v20.12.2 pnpm -v: 9.0.6 ubuntu 始终走的npm库 不知道为啥,修改过common的name, pnpm -F main add @project/common 不行。 ubuntu暂时没有很好的解决办法。
0
1
0
浏览量197
小青梅

GCC编译器在优化级别O0下无法找到内联函数定义的链接问题?

GCC编译器在优化级别O0下无法找到内联函数定义的链接问题 我在gcc编译器下写了如下代码: /* InlineMain.c */ #include inline void Function() { printf("[Function]========= Get!!!\n"); } int main() { Function(); return 0; } 然后在不开启优化(即-O0)的情况下,会报链接错误,找不到符号"Function": * 备注:在开启优化O1以上的情况下是可以正常编译的,编译器会将函数体进行替换$ gcc INlineMain.c /usr/bin/ld: /tmp/ccQuzijl.o: in function "main': INlineMain.c:(.text+0xe): undefined reference to "Function' collect2: error: ld returned 1 exit status 我试着编译并查看了对应的汇编代码: «$ gcc INlineMain.c -S $ cat INlineMain.s» .file "INlineMain.c" .text .globl main .type main, @function main: .LFB1: .cfi_startproc endbr64 pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movl $0, %eax call Function@PLT movl $0, %eax popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE1: .size main, .-main .ident "GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0" .section .note.GNU-stack,"",@progbits .section .note.gnu.property,"a" .align 8 .long 1f - 0f .long 4f - 1f .long 5 0: .string "GNU" 1: .align 8 .long 0xc0000002 .long 3f - 2f 2: .long 0x3 3: .align 8 4: 然后我就发现一件非常让我匪夷所思的事情,就是整一个Function函数主体都消失了!!! 但是也没有被内联替换到被调用的地方,不难发现,在main函数中,依旧是: «call Function@plt,» 即把Function函数当做plt表里的函数(也就是外部函数调用) , 看上去就像是在处理Function函数体的时候编译器把它当做是要内联的函数处理,于是就把整个函数体给删除了,但是在处理函数调用的时候又没有把函数体进行替换,而是把它当做正常的函数调用处理,就好像是处理到中途反悔了一样,有没有大佬能解释一下是为什么? * 备注:我的平台是ubuntu22.04,gcc编译器是默认的版本
0
1
0
浏览量177
小青梅

nuxt3 axios 请求出来的数据在源代码中没有这也没有办法 SEO 呀?

生命周期问题。 "onMounted" 里面的请求不会在 "SSR" 阶段发起。 * "Data fetching · Get Started with Nuxt" (https://link.segmentfault.com/?enc=h1QiEITUz%2FXwpOX0MASZjA%3D%3D.PDd0dz6cWCPERIQw36lxz4lrvK1%2FXZHphdbMoZvS7sMpO%2FHUhm4ZwArbMdqmTMIu8%2FK0jaMl1K9EjIZtFao2jA%3D%3D) * "Lifecycle Hooks · Nuxt API" (https://link.segmentfault.com/?enc=cEr0rI6BE%2FJt7%2B3dQ1k%2FAw%3D%3D.P9hGc2o0hOEhaNwL%2BX%2Baz%2FA9qGMLTPbtG0zP%2Bjy%2FFOXfECZgffmd7vQ5OhqRewbEqxWT7tqTL3ywpYH9T3kWVA%3D%3D) "Nuxt 2 - Nuxt Lifecycle" (https://link.segmentfault.com/?enc=Q4OQWxnVv6poDk5wYMOfRA%3D%3D.ySnoZTFmqkmF8AcWpkdteaMqF%2FNVDOvIXYaJhbYiMHh4Q%2B8yBkAu%2BWhK3mswIELYowsqdmJ5SwArNyqsgUt%2FQQ%3D%3D) 这样有演示的生命周期的文档没有在Nuext3里面找到,但是看2的也是一样的。
0
0
0
浏览量0

履历