兰豆儿
为什么 Next.js 静态导出应用在 Nginx 上路由失效?
不是很清楚 next.js 的具体做法,但是技术上来讲,如果你生成的静态目录里没有对应的文件,使用 nginx fallback 到
index.html,看起来是符合预期的结果。
我猜测有几个解决问题的思路:
1. next.js 是否有 SPA 的构建选项
2. 缺失的文件指向 404
3. 使用 next.js 服务器提供服务,nginx 代理
兰豆儿
微服务的五大组件好多都停用了,还需要学吗?
如图,微服务的五大组件:
1.Eureka:注册中心(停用)
2.Zuul:服务网关(停用)
3.Ribbon:负载均衡(停用)
4.Feign:服务调用(未停用)
5.Hystix:熔断器(停用)
你问我在哪里知道的停用?
org.springframework.cloud
spring-cloud-dependencies
我通过这个看的,不在里面的组件我想应该就是被spring放弃了。所以这些组件还有必要学吗?
兰豆儿
请问 nginx 如何使用 iis 的 ssl?
举例目前 DMZ Linux 上安装 ngnix 但是SSL证书不安装在其上,安装在反向代理的 IIS server 上
nginx 只做转发动作
目前做
server{
port 443;
location / {
iis_server_ip
}
}
会得到 This site can’t provide a secure connection 错误
兰豆儿
C语言文件中的小数输出是0.0?
因为你用的 int price;后面又用%f输出
换成float price;就好了
兰豆儿
vite可以将一个html+css+js项目打包成一个 html么?
vite可以将一个html+css+js项目打包成一个 html么?
怎么配置
兰豆儿
JS 可否使用字符串传输文件?
在一个场景中,数据只能通过字符串传输,需要传文件或二进制对象时就比较麻烦。
目前使用将文件编码为base64传输,但是这种方式会时传输的数据增大(50K的文件编码后为80K)。测试使用浏览器的"TextDecoder"将文件编码为iso-8859-1,可以保持编码后字符串的大小和原文件一样,但是再转回文件时就转不回来了("TextEncoder"只支持utf-8)
编码:
new TextDecoder('iso8859-1').decode(file);
====更新=====
现通过以下方式解码,但是zip压缩包会出现乱码
let buffer = new ArrayBuffer(textData.length);
let arr = new Uint8Array(buffer);
for(let i = 0; i < textData.length; i++){
arr[i] = textData.charCodeAt(i);
}
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250106/4ca8daccfc11c38b65cb507c547b09bc.png)
请问是否还有其他方式可以实现?
兰豆儿
pc 端唤起应用是如何实现的?
URL Scheme。
主流操作系统都支持这玩意儿,不管移动端还是桌面端。Windows 上一般被翻译成“Windows URL 私有协议”或者“Windows URL
自定义协议”,总之你想了解更多搜这个关键字就行了。
比如你截图里的实际就是打开了 "vscode://extension/overtrue.miniapp-helper" 这个链接。
兰豆儿
如何过滤出不可视字符并改为空字符?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241231/7c03ec10c6bda953946d1bdbb60931a4.png)
插槽部分渲染到的数据可能是不可视字符串,这样就没办法是实现文字换行显示了,如何识别出不可视字符串使其换行,或者直接赋空呢?
兰豆儿
amh 两个网站启动 Redis 无法访问?
你好,AMH
安装两个wordpress网站,面板安装Redis,wordpress两个网站同时启动Redis插件,两个网站无法同时访问,A网站能访问B网站打不开,B网站能访问A网站打不开,不启动Redis,两个网站都正常访问。
请问Redis上有什么问题,面板上需要怎么设置?
兰豆儿
tsconfig.vitest.json 如何正确配置?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241221/2a38fc64c0268ef6e65e5bf56773cef8.png)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241221/1dc3ba870004c1ef98fae4e3368cd681.png)
"dependencies": {
"@types/three": "^0.154.0",
"pinia": "^2.0.28",
"vue": "^3.2.45",
"vue-axios": "^3.5.2",
"vue-router": "^4.1.6"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.1.4",
"@types/jsdom": "^20.0.1",
"@types/node": "^18.11.12",
"@vitejs/plugin-vue": "^4.0.0",
"@vitejs/plugin-vue-jsx": "^3.0.0",
"@vue/eslint-config-prettier": "^7.0.0",
"@vue/eslint-config-typescript": "^11.0.3",
"@vue/test-utils": "^2.4.1",
"@vue/tsconfig": "^0.4.0",
"eslint": "^8.22.0",
"eslint-plugin-vue": "^9.3.0",
"jsdom": "^20.0.3",
"less": "^4.1.3",
"less-loader": "^11.1.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.7.1",
"terser": "^5.20.0",
"typescript": "~5.2.2",
"unplugin-vue-components": "^0.25.2",
"vite": "^4.4.9",
"vitest": "^0.25.6",
"vue-tsc": "^1.8.10"
}
node v16.19.0
vscode 最新的
默认是没有设置 "module" 的;
我是希望解决 "import.meta" 的警告,来设置 "module" 的。
那么,现在应该如何做呢?
***
{
"module": "ESNext",
"moduleResolution": "node",
}
似乎应当这样,但会不会有什么副作用?
兰豆儿
vue2封装的表格组件问题?
你所遇到的问题的关键应该是这个v-model绑定的值指向的是同一个东西,根据你的描述看应该是你的添加行这个功能代码有问题。
应该是 这个form.num换成 scope.row.num
这样就可以实现多个输入框的输入。
兰豆儿
字符串 删除指定元素 但要保留第一个?
import re
str_ = '基础元应收账款:12减值准备:12基础%计息(自营):100非基础元减值准备:120应收账款:120非基础%计息(自营):10'
# 用于替换除了第一个'基础'外的其它'基础'
str_ = re.sub(r'(?<=基础)(.*?)(基础)', r'\1', str_)
# 用于替换除了第一个'非基础'外的其它'非基础'
str_ = re.sub(r'(?<=非基础)(.*?)(非基础)', r'\1', str_)
print(str_)
兰豆儿
antd组件库页码怎么设置下一页和箭头一起有背景色,还有跳转xx页加字?
文字修改,可以看下官方api itemRender 看是否可以自定义结构
鼠标悬浮 下一页背景色改变 通过修改对应css实现
兰豆儿
Vue 多项目公共模块管理策略该怎么实现?
graph TD
C[公共包]
C -->|repo 1| D[项目 1]
C -->|repo 2| E[项目 2]
C -->|repo 3| F[项目 3]
目前手上有多个项目,这些项目里面共用一套相同 UI、API 的权限控制模块,公共项目和这些项目都在不同的 云效"git"仓库
上面,并通过流水线进行打包构建。
为了能够统一管理公共模块,在本地使用了 "lerna" 工具对包进行管理,但上传到仓库后流水线如何构建?
由于公司代码管理条例规定,所有项目都要放到云效并在流水线构建打包发布,因此有些方案并不适用。
有没有大佬指点这应该如何解决?
或者更好的包管理策略?
兰豆儿
请问大家,现在一般获取微信小程序获取用户昵称是怎么做的?场景是怎样的?
别想着依靠微信来获取了,自己写个iput让用户填吧
兰豆儿
如何理解 BigInt(9223372036854775807) ?
期望 BigInt(9223372036854775807) === 9223372036854775807
实际上 BigInt(9223372036854775807) //9223372036854775808n
兰豆儿
钉钉宜搭,图片上传组件,仅拍照上传功能,打开相机后左上角有水印,这种水印功能是如何实现的?
这个比较简单吧。
前端可以用canvas。
后端例如像Go可以用image/png库,php用imagemagick。
具体的你可以执行搜索一下
兰豆儿
vue 列表加索引栏 是不是不能分页?
实现下面图中效果,是不是就不要分页了?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241204/1589d2d9081f2bd05db885ebe41109cf.png)
兰豆儿
设计一张表格,可以升降排序,表头一共七个,其中一个不需要排序?
"default-sort" 是 "" 的属性,写在 "" 上是没用的
"sortable" 才是设置排序的属性
"" 上加 ":sortable="item.prop !== 'processdetail'""应该就是你要的效果
兰豆儿
大家帮我看看,这个JS怎么处理分组?
let datalist = [
"man-steady",
"woman-steady",
"woman-gentle",
"man-young",
"tcloud_10510000",
"tcloud_1001",
"tcloud_1002",
"tcloud_1018",
"tcloud_101015",
"tcloud_101050",
"tcloud_1004",
"tcloud_1050",
"tcloud_101056",
"tcloud_1003",
"tcloud_301041",
"WYS_15923375458_001",
"WYS_15332681888_001",
"WYS_15712098340_001",
"WYS_15532485330_001",
"WYS_15875942524_001",
"WYS_15923375458_002",
"WYS_15560857009_001",
"WYS_15332681888_002",
"DDS_15570649499_001",
"WYS_15875942524_002",
]
type Data = { name: string; children?: Data[] }
function parse(
arr: Data[],
[name, splitter, ...rest]: string[],
nameAll = "",
) {
if (!arr.some((v) => v.name === name)) arr.push({ name })
const d = arr.find((v) => v.name === name)!
if (rest.length) {
d.children ??= []
parse(d.children, rest, `${nameAll}${name}${splitter}`)
} else d.name = nameAll + d.name
return arr
}
const p = datalist.map((d) => d.split(/(-|_)/))
.reduce((p, c) => parse(p, c), [])
console.log(JSON.stringify(p))
结果:
[
{
"name": "man",
"children": [{ "name": "man-steady" }, { "name": "man-young" }]
},
{
"name": "woman",
"children": [{ "name": "woman-steady" }, { "name": "woman-gentle" }]
},
{
"name": "tcloud",
"children": [
{ "name": "tcloud_10510000" },
{ "name": "tcloud_1001" },
{ "name": "tcloud_1002" },
{ "name": "tcloud_1018" },
{ "name": "tcloud_101015" },
{ "name": "tcloud_101050" },
{ "name": "tcloud_1004" },
{ "name": "tcloud_1050" },
{ "name": "tcloud_101056" },
{ "name": "tcloud_1003" },
{ "name": "tcloud_301041" }
]
},
{
"name": "WYS",
"children": [
{
"name": "15923375458",
"children": [
{ "name": "WYS_15923375458_001" },
{ "name": "WYS_15923375458_002" }
]
},
{
"name": "15332681888",
"children": [
{ "name": "WYS_15332681888_001" },
{ "name": "WYS_15332681888_002" }
]
},
{
"name": "15712098340",
"children": [{ "name": "WYS_15712098340_001" }]
},
{
"name": "15532485330",
"children": [{ "name": "WYS_15532485330_001" }]
},
{
"name": "15875942524",
"children": [
{ "name": "WYS_15875942524_001" },
{ "name": "WYS_15875942524_002" }
]
},
{ "name": "15560857009", "children": [{ "name": "WYS_15560857009_001" }] }
]
},
{
"name": "DDS",
"children": [
{ "name": "15570649499", "children": [{ "name": "DDS_15570649499_001" }] }
]
}
]
兰豆儿
函数写在函数里面和函数外面有什么区别?
🤣一个于JS作用域的基础问题
从作者的提问可以了解到的是,作者对于JS作用域没有一个清晰的概念。下面先交代一下JS的作用域是什么吧!
作用域
Java Script引擎在执行JavaScript代码时,需要用到编译器、执行引擎和作用域。
* 编译器:语法分析、代码生成等功能。
* 执行引擎:从头到尾负责整个程序的编译及执行过程。
* 作用域:负责收集并维护所有标识符组成的一系列查询,并确定当前执行代码对这些标识符的访问权限。
动态作用域VS静态作用域
在编程语言中可以将作用域分为动态作用域 和静态作用域
* 动态作用域:在运行时 确定作用域关系
* 静态作用域:在编译时 确定作用域关系
JS的作用域属于静态作用域,简单理解就是,作用域关系是在代码编写的时候就已经确定了的 ,无论在哪里调用和执行都不会变。
JS中的作用域
首先,在js中的作用域分为全局作用域、函数作用域和块级作用域。在之前js只存在全局作用域和函数作用域,ES6之后引入了块级作用域。而块级作用域只适用于"const"和"let"声明的变量,所以这里我们不需要考虑块级作用域。
// 这里是全局作用域
function test() {
// 这里是函数作用域
}
在"js"中变量的查找是从当前的函数作用域开始向上查找的,也就是说如果在"test"中使用变量"a",那么会先在"test"的函数作用域查找,如果在"test"中存在变量"a"则停止查找。
回答问题
问题一
«为什么第一个可行,第二个不可行?»
function a(){
var io = "io"
mystart()
function mystart(){
console.log(io);
}
}
a()
这里涉及到了一个全局作用域和两个函数作用域,当执行"a()"时,函数"a"中声明了函数"mystart",也就是说"a"的函数作用域是"mystart"的父级作用域。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241126/38744b1172f8075c95f6af4d7da54f78.png)
当执行"mystart"时,"console.log(io)"会在当前的"mystart"作用域中查找"io"变量,发现"mystart"中不存在"io"变量后,会向"mystart"的父级作用域("a"函数作用域)查找,此时在"a"函数作用域中顺利找到"io"变量。于是顺利打印出""io""。
但是对于下面的代码:
function a(){
var io = "io"
mystart()
}
function mystart(){
console.log(io);
}
a()
这段代码与上面的不同之处在于,"mystart"的父级作用域不再是函数"a",而是全局作用域。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241126/396858b2c8c63eb94692725884aa4640.png)
这时候在执行"mystart"时,查找"io"变量就不会再去"a"函数作用域中查找了,由于全局作用域中没有"io"变量。那么"console.log(io)"就会查找不到"io"变量,那么抛出"ReferenceError"异常。
问题二
«为什么第二个访问io变量的时候不会按照访问规则当前函数作用域下访问不到,到嵌套着它的函数作用域中去寻找?»
之所以有这样的疑惑,是因为错误的将JS的作用域机制理解成了动态作用域导致的。
然而JS采用的是静态作用域规则,也就是说JS的作用域是在编写代码时就确定的
。将"mystart"写在全局作用域下,那么"mystart"的父级作用域就是全局作用域,而不是"mystart()"调用时所在的作用域("a"函数作用域)。
所以题主理解错了JS的作用域,才会奇怪为什么不会去嵌套作用域中寻找!
问题三
«两种写法的函数实际存储方式大概是怎样的?»
参考这两个图
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241126/38744b1172f8075c95f6af4d7da54f78.png)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241126/396858b2c8c63eb94692725884aa4640.png)
兰豆儿
wangeditor富文本回显后禁止编辑后,报错Cannot resolve a DOM node from Slate node: {"text":"模拟 Ajax 异步设置内容 HTML"}?
猜测与页面重新渲染有关
你可以尝试在重新渲染dom元素后挂载钩子函数后再禁用编辑器
mounted() {
// 模拟 ajax 请求,异步渲染编辑器
setTimeout(() => {
this.html = "模拟 Ajax 异步设置内容 HTML";
this.$nextTick(() => {
this.editor.disable();
})
}, 1500);
},
兰豆儿
请问teamviewr有办法在内网模式生成唯一ID吗?
个人觉得要不使用nps之类的内网穿透工具来实现远程控制吧,你使用teamview,他理论上方向就不是内网方向的工具,理论上都不支持
兰豆儿
为什么输出的水仙花数只有 153 370 371 407?
public class Main {
public static void main(String[] args) {
for (int i = 100; i 0) {
int d = n % 10;
sum += Math.pow(d, digitCount);
n /= 10;
}
return sum;
}
}
兰豆儿
如何用纯样式实现CSS的n%3颜色交替效果?
.c {
--color1: #fff;
--color2: #da3838;
--color3: rgb(49, 196, 23);
p {
...
}
}
我希望 "p:nth-child(n%3)" 对应 "--color(n%3)", 能否用纯css样式实现?
***
补充:是"n%3",不是"3n"
p:nth-child(1) --> --color1
p:nth-child(2) --> --color2
p:nth-child(3) --> --color3
p:nth-child(4) --> --color1
p:nth-child(5) --> --color2
p:nth-child(6) --> --color3
...
兰豆儿
请问 Nuxt3 服务端首次渲染返回时间过长 这是为什么呢?
Nuxt3.6.1 首次服务端渲染返回页面内容这段TTFB时间很长是怎么回事呢?
首页接口基本上都使用了lazy 还是要4,5s左右
因为部署后和本地启动,都是在4,5s左右,猜测是Nuxt框架提供的内置服务端渲染花费的时间
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241108/8eb8d3974b23182c72e8e3cb996faa01.png)
试着进行打包优化 gzip 压缩和替换比较大的依赖,只减少了FCP的时间
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241108/41482c7fa4dbd461f913aa9baead9798.png)
服务器返回构建的html模板应该是在FCP之前,性能测试这里也是提示服务器返回有4s左右的时间
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241108/a5de21390fd50b9d5a29eca67736dca1.png)
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241108/0276b903309c5b70a33b9fc075d60e19.png)
目前知道接口少的页面会加载更快,但是前后端分离,服务端首次渲染这段获取数据的时间不知道如何具体查看
琢磨几天了,希望大佬们帮忙看看,非常感谢。
兰豆儿
页面数据全vuex中真的合理吗?
在使用vuex前,需要了解vuex是为了解决什么问题,vuex你可以看成全局数据存储仓库,提供全局数据支持,你可以在任何页面通过vuex获得共享数据,vuex主要是为了解决状态管理,例如全局的主题、全局项目配置、用户信息等数据,通过vuex可以轻松获取这些数据,在对应的页面对其操作,共享状态。
而如题所说的,将请求数据全部放进vuex,这是不合理的,vue项目中,除非是跨层级页面&组件这样难以共享数据的结构,可以适当使用vuex,一般情况下是用不到的,像这种跨层级的结构,你需要考虑页面结构是否合理,为什么层级会嵌套过深,跨层级数据共享vue也有其它代替方法,例如eventBus事件总线、兄弟组件传值等。
兰豆儿
为什么js文件也会关联 ts 的类型声明文件?
在写nodejs文件的时候发现,明明是js文件却有类型提示,甚至按住Ctrl点击也会跳转到对应的 ".d.ts" 声明文件,这是为什么呢?
* 项目目录
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241028/35dbc8d496e169fc4d257ec2606812c4.png)
* package.json
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241028/23ec2b41911db75f3aacf71d7694b230.png)
* 现象
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241028/6d7b039d06cd5c614ec6c0eea1976eb3.png)
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241028/93b94d820a838a9923831c7e141df239.png)
兰豆儿
el-tree节点勾选问题:如何实现自动勾选功能?
简单写了一下,就是在check-change事件中对判断是否是这两种情况并作对应处理即可
import { ref } from 'vue'
const treeRef = ref();
const data = ref([
{
label: 'root',
children: [
{ label: '2-0' },
{ label: '2-1' },
{ label: '2-2' },
{ label: '3-0' },
{ label: '3-1' },
{ label: '3-2' },
],
}
])
const handleCheckChange = (data, checked) => {
const [type, index] = data.label.split('-');
const checkedNodes = treeRef.value.getCheckedNodes();
// x-n被勾选,且x-0没被勾选,则勾选x-0
if (checked && index !== '0' && !checkedNodes.some(it => it.label === `${type}-0`)) {
treeRef.value.setChecked(`${type}-0`, true);
}
// x-0取消勾选,且有x-n被勾选,则重新勾选x-0
if (!checked && index === '0' && checkedNodes.some(it => it.label !== `${type}-0` && it.label.startsWith(`${type}-`))) {
treeRef.value.setChecked(`${type}-0`, true);
}
}
兰豆儿
请问有哪些轻量级的日志文件查看工具?
已解决。
尝试过 goaccess 之类的,但是只适合分析访问日志,不适合通用日志。
我是用 go + sse + xterm.js 写了一个简单的服务,可以满足我的需求。
原理是通过
"https://github.com/nxadm/tail" (https://link.segmentfault.com/?enc=QkGT95JAEVaDE6L15IbNbg%3D%3D.L%2B1WHDlJ2gIJrxa%2F%2BPY8U0xfQ04Py67mVfB5TXmpEKQ%3D)
监听文件变化,并使用 SSE 发送到浏览器,然后通过 xtermjs 渲染。
兰豆儿
vue3+vite打包报错,请问怎么解决?
说明对应文件夹的操作系统权限不允许普通用户的写操作
可以用资源管理器修改一下文件夹的权限
或者配置一下npm默认全局仓库为另外一个文件夹,而不是默认的路径
兰豆儿
求时区国际化方案?
求时间根据timezone国际化的开源demo,类似飞书这种的,考虑【冬令时】和【夏令时】的
https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241024/c213c905eebfc9a6291edd0ac4eaf8f5.png
提供开源demo,或者前后端思路
兰豆儿
springboot 配置redis 一直报 Connection reset 错误怎么办?
springboot 3.x 配置了 redis 客户端,终端一直提示如下错误,但是又能实际向redis写入数据(数据是乱码的,读出来也是
null),请问该如何解决(没有在代码中增加 RedisConfiguration 进一步设置,是不是这个原因导致 ?)?
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241024/7f973c1241448b7f1ee78a40412382c6.png)
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241024/7460ae6f20c09dc315d252e73cbf207a.png)
我的配置如下:
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241024/a37513f4a82bac0d14b0f088d067c10e.png)
我的代码如下:
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241024/f071c250e4ac27f0317eaedd1fda472f.png)
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241024/a6468cabc99ce194bcd73df74b005cfe.png)
无
兰豆儿
tailwindcss 和 unocss 如何合并属性值完全一样的重复类?
举个例子: "h-10" "before:h-10" "after:h-10" "focus:h-10" "hover:h-10"
这三个类的属性值是完全一样的,但是打包后会生成如下 css:
.h-10,
.hover\:h-10:hover {
height: 2.5rem;
}
.focus\:h-10:focus {
height: 2.5rem;
}
.before\:h-10:before {
height: 2.5rem;
}
.after\:h-10:after {
height: 2.5rem;
}
后期 css 变得复杂之后,重复的属性就会激增,导致文件体积变大,有办法合并这些类吗?
期望如下:
.h-10,
.hover\:h-10:hover,
.focus\:h-10:focus,
.before\:h-10:before,
.after\:h-10:after {
height: 2.5rem;
}
兰豆儿
wsl --install无法执行?
首先查看你的windows10的版本号是多少,微软文档写了:
«必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。
如果使用的是更早的版本,请参阅"手动安装页" (https://link.segmentfault.com/?enc=GAXSem%2Fjggfk9HM6Swm%2FYQ%3D%3D.g4kfptGrVITtq848hzXyTQcYcIeK6MyiwvGZursmvmV8rRHIHrElouNrAkfoiWi%2BkzQ0pWHGNWwt0r9wrJMDYQ%3D%3D)。»
查看内部命令的方式是打开你的终端,输入 "winver" 会弹出一个窗口,能看到具体的内部版本。
所以先看看你的win10是否版本过低。然后有问题的话,就按照"手动安装页" (https://link.segmentfault.com/?enc=iUyksZxHW5cpYb41DOGWGw%3D%3D.V7mDkqhURmkm5wh3eX72nPSPpEipTC1RU2QUQ6qz%2FpjKhzMXzTMRq%2Bjvt%2BrVQTXpHuHF0RTGa1iWQbVHtzsbbg%3D%3D)去手动解决问题。
其他的安装详细的内容可以查看这篇微软的官方教程:
"如何使用WSL在Windows上安装Linux" (https://link.segmentfault.com/?enc=Z8wk1raNhNr%2F2S%2BKdmb%2FNA%3D%3D.iJaHXpbP%2B2s9YjcuSaStD%2BC6lOvuq%2B5qc8rjWDCXq1YRGcR6LrT6KY6bG3bJmj9%2FJKnFkTBcc%2BO88%2BjfE4zVeQ%3D%3D)
兰豆儿
你们公众号线上后怎么做新功能的测试工作?
现在遇到一个问题,微信公众号上线了,但是有些功能添加和问题的处理,我就需要修改一点上传到正式环境去看效果,一般的情况下这样没问题,但有些访问量非量大的项目这样做肯定是不行的,但是,微信公众号的开发,各种环境,微信授权本身是需要配置好的,这样完全复制一个一模一样的又不现实。
你们在做公众号开发时,问题修改和新功能开发是怎么测试的呀?
兰豆儿
spingboot3.0的新特性有哪些
Spring Boot 3.0 新特性
Spring Boot 3.0 是 Spring Boot 的一次重大更新,带来了许多新特性和改进。以下是一些主要的新特性:
1. 基于 Jakarta EE 9
- 迁移到 Jakarta EE 9:Spring Boot 3.0 从 Java EE 迁移到 Jakarta EE 9,这意味着所有相关的库和依赖项都已更新到 Jakarta EE 9 版本。
2. 支持 Java 17
- 最低 Java 版本要求:Spring Boot 3.0 要求至少使用 Java 17,充分利用 Java 17 的新特性和性能改进。
3. 第三方依赖更新
- 最新版本的依赖库:Spring Boot 3.0 更新了许多第三方依赖库到最新版本,包括 Spring Framework 6.0。
4. 性能改进
- 启动时间优化:通过改进启动流程和依赖管理,Spring Boot 3.0 的启动时间显著缩短。
- 资源使用优化:优化了内存和 CPU 的使用,提高了整体性能。
5. 新的配置方式
- 支持 YAML 的多文档功能:可以在一个 YAML 文件中定义多个配置文档,提高了配置的灵活性和可维护性。
6. 增强 Actuator
- 新的 Actuator 端点:增加了新的端点,提供了更多监控和管理应用程序的能力。
- 改进的指标收集:增强了指标收集功能,提供了更详细的性能和运行时数据。
7. 支持 Spring Native
- 原生映像支持:Spring Boot 3.0 支持生成原生映像,可以显著减少应用程序的启动时间和资源消耗。
8. 安全性增强
- 新的安全特性:引入了新的安全特性和改进,包括更好的密码存储和验证机制。
9. 自动配置改进
- 更智能的自动配置:自动配置机制更加智能,能够更好地适应不同的应用程序需求。
10. 支持 GraalVM
- 更好的 GraalVM 集成:Spring Boot 3.0 提供了对 GraalVM 的更好支持,使得构建原生映像更加容易。
这些新特性使得 Spring Boot 3.0 在性能、安全性、配置和管理等方面都有了显著的提升,为开发者提供了更强大的工具和更高效的开发体验。
兰豆儿
如何优化基于浏览器的 token 验证频率?
额,这就属于你多想了,这算是 HTTP 的特性,因为其是无状态的,换句话说,如果没有 “Token” 一类的标识来进行区分,那对于服务器来说,每个请求都是
“陌生”。
如果没有 “Token” 服务器并不能知道,前一个请求跟后一个请求有什么关系,所以才需要每次都发送 Token 来证明:“你是你”。
况且,认证一个 Token 对于服务器来说,开销都很小。而对于客户端来说,传输的 Token 大小也没有什么可值得优化的。
对于类似于 JWT 的认证方式而言,甚至都不需要查库就能验证身份,而其他方式的也可通过缓存来减少 Token 的验证时间。
«还有其他更优越的方式吗?»
有,使用 Socket。这在浏览器环境下,有 WebSocket 可用,他的连接是有状态的,除非重新连接(一般发生的页面刷新后),当然,你也可以把它放到
Web Worker 里面,这样刷新页面也不影响,要发送请求的时候就从页面 postMessage 到 Worker 里面,然后 Worker 里面的 WS
再向服务端发送,但是,这样带来的麻烦就会变多了。
这些都是花活了,对于用户认证这个业务本身来讲,一般不太需要刻意的去做优化。
兰豆儿
如何在 Git Bash 中获得 Linux 终端体验?
git bash 本质是mysy的子集,但是阉割了pacman,pacman也是一个包管理器。
所以想办法把pacman
搞定就行了,"https://gist.github.com/adojos/0abab00dd7e6bd84db39a760fb40a340" (https://gist.github.com/adojos/0abab00dd7e6bd84db39a760fb40a340)
兰豆儿
为什么我终端开了代理,却还无法ping 通 google呢?
因为"ping"是不走http代理的。http代理它只能代理基于TCP协议的 HTTP或者HTTPS协议 的流量。
ping命令用的是icmp协议,它不会去使用代理,所以这个设置没用。
兰豆儿
终端安装命令安装不了,请问是哪个地方出了问题?
使用终端命令npm去安装脚手架报错https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/61430b080bd149a443c6b595ccee5d56.png网上能查到的都试了不管用
重装版本不行,切换网络不行,切换node版本不行
兰豆儿
这种效果如何实现呢?
"https://codepen.io/artzub/pen/Mmgjzp" (https://codepen.io/artzub/pen/Mmgjzp)
别人的代码,是用的 d3js 画的 displacement texture,稍微改一点代码就有 渐变网格了
剩下的就是去掉 d3js 部分,用 图片代替 加载到 threejs 里
修改 87 行 const geometry = new THREE.PlaneBufferGeometry(87, 61, 16, 16)
新增 95 行 material.wireframe=true
注释 98 行 //material.normalMap = texMap
https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/e3533b1b026e5a65e4b6c01c0d2bd7da.png
***
图上应该只有 渐变网格比较难吧,其他部分应该容易找。
"https://github.com/hakolao/wireframe" (https://link.segmentfault.com/?enc=mZSLqdfpEHP5Zg%2Bcs46nIw%3D%3D.%2FNFCLaOPwXunmnQy4VJ3IrM5a5cS7RtqRzR0IqEqCvCUjGTvgQqfQJmwugvqHyXE)
***
这个应该是你要找的示例代码了
"https://sbcode.net/threejs/displacmentmap/" (https://link.segmentfault.com/?enc=4yvZxdn%2FPpIfzxD9tSpKSA%3D%3D.MeNuLvRE71yx%2BtkJsX50bDRdBkfksQtXbS9qisN9w%2FdiXb%2F3Th%2BenvP%2B7JigrkcD)
"https://medium.com/fink-it/colored-gradient-wireframe-model-in-three-js-b9cd4bfc0b92" (https://link.segmentfault.com/?enc=6bacsL1il00nePsL0wWWCg%3D%3D.TZKA%2FYR4yIrhJk2hBdt94Rg1ve5pK5Rp0LxdRHQWClDycm3Og3l1KJwwzmKVll%2BRUcNNFn%2Fqp6CTWMgsTWnX%2BcsuBDXqKo85Ut0vr4ODrnevD2h7dg8wnGQsM0D%2B8I0F)
***
"Threejs
开发3D可视化地图" (https://link.segmentfault.com/?enc=eoMorPSqBz%2FUxO%2Fzai8lsg%3D%3D.8y1051NVt0Pfx2oyFyxs6KJsbE6cHZpntKlavlG%2F1Ooutl0qHNu3rOaRVqpBXrH4xNF9pL041Nx23A5j4vKGow%3D%3D)
https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/dcf3d0700676f6456557dbdd1d2f9f51.png
***
找到一个 渐变网格的范例
下面 62票的答复里的 "Gradient with vertex colours" 看着可以借鉴
"Apply color gradient to material on mesh -three.js" (https://link.segmentfault.com/?enc=sM%2BjulO%2FpJW9WeIMTh%2FK8Q%3D%3D.vNkoAc7kiOKvVap6pk%2FsniI00YE%2FPsBj5cgom1tVeFn2Fc478Hr8HOavHBVBmuOtMMfbWjYygDQewToLaRoWVp6TivKpJO3DOgqOMWbYElBC0PQSOm3I99ZREMH92yG1)
兰豆儿
新站百度迟迟不收录?
你这个应该去百度站长里面提交工单
兰豆儿
docker / nginx 疑问?
Linux 版本: ubuntu-22.04.4-desktop-amd64.iso
运行在 VMware
Dockerfile:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241002/4d744d90d779c6ad2714964e50e65c49.png)
因无法访问"http://192.168.110.131:81/" (https://link.segmentfault.com/?enc=R%2FtuB4cCulgaLuzyXj3ISw%3D%3D.sHvqHbAAb%2FbWTh%2Bq4P2tkYYV5rx5PC%2FDk%2FnYWSJ8mNQ%3D),
所以我想看看日志,但情况却是 没有输出而且还卡在那里了:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241002/01601b39541f85d9e35e818554773e2c.png)
问题1: 我的Dockerfile有问题吗?
问题2: 输出日志的异常可能是什么原因? (cat 命令是正常的别的文件可以输出)
如何修改呢?
兰豆儿
萌新求助,微信小程序如何删除页面栈?
都知道微信小程序最多10个页面栈并提供了几个api reLaunch redirectTo
但是拼多多或者京东的商品详情页面里面点击“推荐商品”无限递归跳转商品详情页面,哪怕跳100层都没问题,然后点击左上角的返回,返回8层左右前面选的商品页面都没了,这种是怎么做到的呢,大佬们求救
我公司有个需求
首页-商品详情-(redirectTo确认-redirectTo支付-redirectTo支付结果)- 订单列表 - 订单详情
然后订单详情里面有个再次购买, 又会跳到商品详情重复这个流程 直到10层页面栈报错走不动了,我想实现京东或者拼多多的, 超出10层 前面的几个就自动删掉
兰豆儿
如何在Umi后台实现页面跳转时保持语言参数一致?
我使用了umi开发后台,后台支持切换中英文,我想要在页面间的跳转(站内,站外)都携带语言参数,来保证页面的跳转语言环境不变,如何实现
希望能够保证跳转语言一致
兰豆儿
宝塔nginx如何配置apple-app-site-association?
location的正则匹配优先级要高于前缀匹配,你这个配置匹配到的应该是第一个location,而不是你配置的最后一个location,你可以在第一个location中加access_log
验证这个结论,要想访问到最后一个location,你可以使用精确匹配,最后一个location匹配规则改为:
location = /.well-know/apple-app-site-association {
.........
}
兰豆儿
Vue3 若依框架侧边栏空白,已注释登录模块并添加路由,怎么解决?
我使用若依的vue3前端框架,我这边注释了登录模块,因为我没有后端,我按着文档添加路由,我的侧边栏一直是空白的,求各方大佬解答
我在permission.js中修改过但是没成功
兰豆儿
React的useCallback没有按预期工作,依赖项sortRuleList未更新,问题出在哪里?
const [sortRuleList, setSortRuleList] = useState([]);
const newsortRule = () => {
setSortRuleList(prevList => {
const newList = [...prevList, { sortTypeCode: '', sortType: '', orderType: '' }];
setTimeout(() => {
console.log("Updated sortRuleList:", newList);
ref.current.reload();
}, 0);
return newList;
});
};
const onCellChange = useCallback((value: any, type: any, idx: any) => {
setSortRuleList(prevList => {
const newList = [...prevList];
if (type === 'sortTypeCode') {
newList[idx]['sortTypeCode'] = value;
sortbyArr.forEach(ele => {
if (ele.value == value) {
newList[idx]['sortType'] = ele.label;
}
});
}
if (type === 'orderType') {
newList[idx]['orderType'] = value;
}
return newList;
});
setTimeout(() => {
// 这里用最新 sortRuleList 值
setSortRuleList(prevList => {
console.log("909090", prevList);
return prevList; // 日志
});
}, 0);
}, [sortbyArr]);
兰豆儿
term数据抓取遇到登录的问题?
用selenium去登录temu的网站,为什么每次输入完账号后点击下一步,不会出现出现输入密码的框,他都会自己自动刷新了,又叫我输入账号,有没有大神求一些思路怎么弄?