Submitted by gouki on 2024, February 3, 12:17 AM
在使用livewire的过程中,由于没看文档,浪费了不少时间 ,比如 多个组件在往下传递的时候 ,某个子组件中其实有很多值需要向外变更,但事实上只有一个有效值 需 要向父组件传递。
当然,可以通过event进行传递。但就是因为不想写event,浪费了大量时间 在看wire:model怎么绑定。
看了官方的nest-component一章才发现,原来有个#[Modelable]。就是专门用来解决这个问题的。
详细参考:https://livewire.laravel.com/docs/nesting#binding-to-child-data-using-wiremodel
不多说。太长了主要
PHP | 评论:0
| 阅读:2884
Submitted by gouki on 2024, January 14, 12:30 PM
在Debian下,按照官方的教程进行gpg和source的添加时,在apt update时会报错 NO_PUBKEY的错误
1、添加GPG
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
2、UPDATE
sudo apt update
大概率情况下是报:
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 458CA832957F5868
Reading package lists... Done
W: GPG error: https://pkgs.tailscale.com/stable/debian bookworm InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 458CA832957F5868
--
出现这个问题,大部分是因为用tee生成文件的时候 ,权限不对,所以需要执行一下: chmod o+r /usr/share/keyrings/tailscale-archive-keyring.gpg
再进行sudo apt update,一切正常!
Linux | 评论:0
| 阅读:2911
Submitted by gouki on 2023, December 28, 10:26 PM
因为今天用了filamentPHP这个框架,类似 laravel-admin/ dcat-admin等。为什么想用它呢。看官网,插件极其多...
根据官方的教程进行composer require以及publish素材后,本地一切正常,但上线后,报livewire/livewire.js找不到
找了一下根目录,发现确实没有。于是php artisan route:list|grep livewire,看到是由PHP进行模拟的。
但因为我用的是lnmp ,默认对JS有一个30d的缓存,所以需要在js的判断前加上
XML/HTML代码
- location = /livewire/livewire.js {
- expires off;
- try_files $uri $uri/ /index.php?$query_string;
- }:
不设置过期时间 ,同时是由PHP来解析。reload一下nginx,再次打开网页,一切正常
Tags: laravel
PHP | 评论:0
| 阅读:2986
Submitted by gouki on 2023, December 22, 9:22 PM
小程序里最烦人的就是自定义字体了。设计师们总喜欢用一些看起来很好看的字体。但对于小程序来说简直是个灾难。
所幸,如果是英文字体的话,一般都只有8~10K,但那些 OTF 其实还是很大,而且不少字体中有一些特殊的符号,比如@这些。但事实上很多时候我们都不需要。所以这时候就要转换一下。。。
1、convert OTF to TTF
2、用 sfnttools.jar 包(网上都是这个名儿)。来进行转换,类似 java -jar sfnttool.jar -s '内容,也可以是文件' 源字符.ttf 生成的.ttf
3、如果字体还大于50K 的话,转换成 base64
4、如果小于50K,直接就可以引用了。。。。
大致这样。。
1、https://cloudconvert.com/otf-to-ttf
2、https://www.giftofspeed.com/base64-encoder/
参考:https://blog.zengrong.net/post/font_trim_replacement_converting/
jar 包的详细用法可以直接命令行看
XML/HTML代码
- java -jar sfnttool.jar -h
- subset [-?|-h|-help] [-b] [-s string] fontfile outfile
- prototype font subsetter
- -?,-help print this help information
- -s,-string string to subset
- -b,-bench benchmark (run 10000 iterations)
- -h,-hints strip hints
- -w,-woff output woff format
- -e,-eot output eot format
- -x,-mtx enable microtype express compression for eot format
Javascript | 评论:0
| 阅读:3802
Submitted by gouki on 2023, December 15, 3:06 PM
在用 antv 的 modal 对话框时,你会发现弹出来的框有一个很大的边框,打开 css 会找到 ant-modal-content 这个 class。如果你直接 加这个样式 padding: 0,或者 :deep(.ant-modal-content){padding: 0 }你会发现都不起作用
即使,即使你用了 important 也还是不起作用
这时候 看浏览器工具栏的右侧,会有类似 :where(xxxx) .ant-modal-content 这样的样式,也就是说他本身就是一个伪类,如果你直接对它操作是不起作用的。
网上找了很多资料。最后找到说,其实他有一个 wrap-class-name 的属性。用了这个属性后,整个对话框里的样式就可以跟着这个外层类走了。因此设定:<a-modal wrap-class-name="wrap-modal" ></a-modal>
再添加样式:
XML/HTML代码
- .wrap-modal{
- .ant-modal-content{
- padding: 0!important;
- }
- }
再次看弹窗。一切正常啦 ~
Javascript | 评论:0
| 阅读:2932