首页
统计
留言
友链
壁纸
Search
1
Notion网页端汉化、主题修改
709 阅读
2
SnapicPlus主题添加视频功能以及使用外链详解、图片加载缓慢问题解决
551 阅读
3
Gravatar镜像源地址大全
538 阅读
4
typecho主题中文搜索404问题解决
510 阅读
5
Notion客户端中文安装
444 阅读
Web前端
ES6
Vue.js
Node.js
JavaScript
其他前端扩展
后端探索
数据库
服务器
小程序
手机端
奇技淫巧
成功之母
时光随笔
登录
Search
标签搜索
SQL
typecho
SqlServer
MySql
jQuery
JavaScript
npm
Gravatar
镜像
google
Java
包管理工具
前端
JS
node
数据库
Notion
BEGIN...END
EXECUTE
404
天祈
累计撰写
66
篇文章
累计收到
14
条评论
首页
栏目
Web前端
ES6
Vue.js
Node.js
JavaScript
其他前端扩展
后端探索
数据库
服务器
小程序
手机端
奇技淫巧
成功之母
时光随笔
页面
统计
留言
友链
壁纸
搜索到
66
篇与
的结果
2022-03-23
获取网站图标api
相关链接{alert type="info"}自建服务教程地址: https://www.iowen.cn/favicon-api/GitHub地址: [https://github.com/owen0o0/getFavicon]https://github.com/owen0o0/getFavicon){/alert}第三方API{alert type="success"}谷歌提供的: http://www.google.cn/s2/favicons?domain=www.jiagou1216.com国内网友提供: https://api.iowen.cn/favicon/get.php?url=www.jiagou1216.com缤纷彩虹天地搭建:http://favicon.cccyun.cc/http://blog.cccyun.cn大熊搭建: https://api.yxt521.com/favicon/get.php?url=https://www.baidu.com{/alert}
2022年03月23日
172 阅读
0 评论
0 点赞
2022-03-18
泡影
{alert type="info"}你那边艳阳高照 我这里阴雨连绵 诡谲的天气待会儿可能会有雪花飘落 曾经我也是娇艳阳光下的幸福的人 无休止的注视与等待的眸光 等待着彼端的回声与热烈 当凝望变得更加纯粹 沉默与寂静好像又从远方寻觅而来 久违的感觉 没见过世面的孩子啊 当浓烈的情感在炽热的胸膛中百转千回激荡的时候 需要忍耐 需要克制 等待和辨别,慢慢的 一厢情愿的热烈最后不是发酵成故事就是演变成事故 辜负或者被辜负 我们已经是一个大孩子了 应该懂得 每一个人,每一份感情都是唯一的 若不是相遇便是分离 若不是双向的奔赴便是辜负 最浓烈的情感需要在适合的时候宣泄于合适的对象 感情是唯一的 一份热烈浓厚的感情不可能同时给予到两颗不同的心 不可能 也不允许 不要轻易给予 也不要轻易辜负 人生啊 毕竟只有一生 只有一次 茫茫岁月万事再难回首 我们是人 是有七情六欲的平凡人类 贪婪 狡诈 谎言 欺骗 傲慢 嗔怒 爱情 慈悲 善意 怜悯 同情 真诚 每一个自命不凡 自以为将不平凡的人都将会是芸芸众生中的一个 而人心啊是最善变 最不可揣测的东西 需要漫长的验证和等待 心脏是最容易被麻痹和蒙昧的 自以为的一觅即中可能是自欺欺人一厢情愿的梦幻泡影 沉稳 耐心 克制 让心与心来交流 等待等待等待 让时间来证明一切{/alert}{music id="27598102" color="#090a0b" /}
2022年03月18日
149 阅读
0 评论
0 点赞
2022-03-02
JWT基本类使用
jwt官方说明com.auth0包 GitHub地址io.jsonwebtoken包 GitHub地址com.auth0包使用:{alert type="info"}Maven引入:<dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.18.3</version> </dependency>{/alert}
2022年03月02日
165 阅读
0 评论
0 点赞
2022-02-14
Google Guava Cache
{alert type="info"}<!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>30.1.1-jre</version> </dependency>{/alert}基本工具类package com.sakura.Utils; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; /** * 基于Guava Cache缓存类 * */ public class TokenCache { private static LoadingCache<String,String> localCache= CacheBuilder.newBuilder() .initialCapacity(1000)//初始化缓存项为1000 .maximumSize(10000)//设置缓存项最大值不超过10000 .expireAfterAccess(365, TimeUnit.DAYS)//定时回收 规定时间没有操作就会被读写就会被回收 .build(new CacheLoader<String, String>() { //当缓存没有值的时候执行load方法 @Override public String load(String s) throws Exception { return "null"; } }); public static void set(String key,String value){ localCache.put(key,value); } public static String get(String key){ String value=null; try { value= localCache.get(key); if("null".equals(value)){ return null; } return value; } catch (ExecutionException e) { e.printStackTrace(); } return null; } }
2022年02月14日
163 阅读
0 评论
1 点赞
2022-01-06
typecho常用自定义基本操作
更换公共头像地址Gravatr镜像源:{alert type="info"}在typecho根目录下config.inc.php文件最后插入:define('__TYPECHO_GRAVATAR_PREFIX__', 'https://gravatar.cat.net/avatar');{/alert} 更多镜像源请参阅:Gravatr镜像源自定义上传附件目录:{alert type="info"} 在typecho根目录下config.inc.php文件最后插入:/** 后台路径(相对路径) */ define('__TYPECHO_UPLOAD_DIR__', '/www/static'); /** 反向代理(cdn) */ define('__TYPECHO_UPLOAD_URL__', 'https://xxxxx.upyun.com');如此修改之后所生成的链接就是: https://xxxxx.upyun.com/www/static/...{/alert}后台路径自定义:{alert type="info"} 后台路径字定义,用于修改程序后台地址,提高安全性。 默认typecho后台地址是admin,如果我们想改成typecho-admin,那么首先登陆服务器把admin文件夹名字改成typecho-admin。然后在config.inc.php找到define('__TYPECHO_ADMIN_DIR__', '/admin/');将其中的admin改成typecho-admin即可。{/alert}强制https{alert type="info"}当你用https的时候typecho会自动识别的,但是因为大家的环境千差万别,会有识别错误的情况,比如你https都布置好了,但是程序依旧只会加载http的,所以该常量的作用就是强制程序使用https,解决识别错误的情况。# config.inc.php 文件 define('__TYPECHO_SECUER__', true);{/alert}
2022年01月06日
288 阅读
1 评论
0 点赞
2022-01-04
SnapicPlus主题添加视频功能以及使用外链详解、图片加载缓慢问题解决
前言:{alert type="warning"} 有幸使用Lopwon制作的typecho图片主题。 这个一个非常棒的图片展示主图,就鄙人而言,无论是图片的加载还是UI界面的布局,都是很令人满意和为之雀跃的。 用图片来记录自己漫长一生行走在人世间的丝丝缕缕。当夕阳西下,健壮的身姿变得佝偻,明亮光洁的姿容变得鹤发鸡皮令人生畏,当回忆往昔的时候难免是需要一些承载记忆的寄托的。 在自己琢磨自定义添加视频的功能过程中,网站数据库建立删除多次,折腾两三天最后在多次请教@主题作者以及@波妞并参阅文档以及主题评论之后,耗费了一些时间多次尝试最后终于成功显示。在次总结一下修改的步骤方便有此尝试想法的仁兄。谨以此记。 内容主要分类为:使用外链和添加视屏功能。修改文档内容行数均指原主题文档行数,注意备份做对比。 主题内容在执行修改之前最好先备份一下原主题以及网站和数据库。这是有血的教训的!!!{/alert}本人环境:{alert type="info"}PHP版本: PHP-74数据库: MySql5.7系统配置: 阿里云 4核-8G-2M Windows Server 2019typecho版本: v1.1-17.10.30(目前最新版本,修改与版本无关){/alert}链接导航:{alert type="success"}我的图片记录网站SnapicPlus主题购买地址SnapicPlus主题作者博客链SnapicPlus主题额外文件GitHub地址Ckin视频播放插件其他参考:@海不眠 , @掌印豪杰{/alert}图片加载慢问题:{callout color="#80ea39"} 刚开始使用此主题的时候,就发现图片网站图片的加载速度是在是慢,小则1M以内,大则10M往上。等网站首页全部预览出来之后,已经过去半分钟多了,可能还没有加载完。如此,体验就非常糟糕。 受限于部署网站服务器的资源带宽等限制,直接请求网站中图片的话,响应速度是很慢的,让人看得着急。于是想到以前使用对象存储OSS的时候,访问速度还是比较可观的,如果再加上cdn为OSS加速的话,那么速度一定快的飞起。所以最后决定用cdn+对象存储OSS模式来做网站资源的源。cdn+oss的配置官方有文档,参考即会。 我测试了一下云服务器、云服务器+cdn、对象存储、对象存储+cdn四种访问模式的响应速度,最后选择了cdn+OSS模式。以下是响应速度测试的结果。业余测试可能不专业,仅供参考。{/callout}{alert type="info"}测试内容:10.7M的一张.jpg格式图片测试次数:10测试环境:OSS、云服务器(4核-8G-2M)请求次数云服务器(s)云服务器+CDN加速(s)OSS对象存储(s)OSS对象存储+CDN加速(s)第一次37.643.016.802.48第二次36.932.597.252.17第三次37.092.737.062.24第四次37.392.496.862.26第五次36.703.267.272.14第六次36.942.527.092.25第七次37.423.017.592.21第八次36.812.677.332.26第九次37.582.567.222.22第十次37.522.547.082.24平均响应37.2022.7387.1552.247{/alert}添加图片外链功能:{timeline}{timeline-item color="#19be6b"}第一步:打开主题文件夹下functions.php,删除63到78行的getAttachImg函数,然后在删除的位置添加如下代码:function support_url_pic($content) { preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i", $content, $theurl); $img_src = $theurl[1]; return $img_src; }{/timeline-item}{timeline-item color="#ed4014"}第二步:打开主题下的index.php,删除86至95行内容,替换为以下代码,需注意php开始和结束标记:<?php $funcpicurl = support_url_pic($this->content); foreach ($funcpicurl as $picurl) { echo '<div class="pic-'.$this->cid.'"><a class="grid__link fancybox-buttons" href="'.$picurl.'" data-fancybox-group="gallery-'.$this->cid.'"><img class="lazy grid__img" src="/usr/themes/SnapicPlus/img/loading.gif" data-original="'.$picurl.'" /></a></div>'; } ?>{/timeline-item}{/timeline}添加视频播放功能:{timeline}{timeline-item color="#19be6b"}文件添加: 所需的文件我已上传至GitHub,下载SnapicPlus主题额外文件之后,内部有css、js、img、fonts四个文件夹。将css、js、img文件夹中的文件拷贝到SnapicPlus主题目录下对应名字的文件夹中。将fonts文件夹整个拷贝到SnapicPlus主题文件夹下。{/timeline-item}{timeline-item color="#ed4014"}修改SnapicPlus主题下footer.php文件: 在第16行之下增加ckin.js引入:<script src="<?php $this->options->themeUrl('js/ckin.js'); ?>"></script>{/timeline-item}{timeline-item color="#ed4014"}修改SnapicPlus主题下functions.php文件: 51行修改为如下样式,可以看到正则匹配修改为https开头,尾缀增加mp4匹配。这一处修改非常重要,如此修改之后,网站置顶图必须使用https开头的,否则不会正常显示!!!preg_match_all("/(https:\/\/)[^>]*?.(png|jpg|gif|jpeg|bmp|mp4)/i", $final['text'], $thumbUrl);{/timeline-item}{timeline-item color="#ed4014"}修改SnapicPlus主题下header.php文件: 在第18行引入之后换行添加一个新的引入:<link rel="stylesheet" href="<?php $this->options->themeUrl('css/ckin.css'); ?>" />{/timeline-item}{timeline-item color="#ed4014"}修改SnapicPlus主题下header.php文件: 在第28行之后换行添加以下代码:<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?5686ab48ae6d44e73281040b9067aff1"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>{/timeline-item}{timeline-item color="#ed4014"}修改SnapicPlus主题下index.php文件: 在第95行与96行之间添加以下代码:<?php $tags=$this->tags;if($tags!=null&&in_array("vcr",$tags[0])){ ?> <div class="grid__link"> <div class="lazy grid__img"> <video src="<?php echo img_thumb($this->cid); ?>" data-color="#fff000"></video> </div> </div> <?php } ?>{/timeline-item}{timeline-item color="#ed4014"}修改网站根目录下/var/HyperDown.php文件(指typecho文件而非主题文件): 编辑第17行,在最后字符串结尾处添加 “|video” ,修改之后代码如下:public $_commonWhiteList = 'kbd|b|i|strong|em|sup|sub|br|code|del|a|hr|small|video';{/timeline-item}{timeline-item color="#ed4014"}typecho管理后台添加标签:打开管理-->标签,添加一个标签:标签名称为“视频”;标签缩略名为“vcr” {/timeline-item}{timeline-item color="#ed4014"}typecho管理后台设置允许mp4文件格式上传,其他格式据实际情况添加:设置-->基本-->允许上传的文件类型,在其他格式处添加“mp4”{/timeline-item}{timeline-item color="#ed4014"}尝试typecho管理后台添加视频内容:管理-->文章-->新增,标签设置为“视频”,添加以下测试内容,视频源可用附件链接或者外链,自己更换即可:视频添加测试 <video src="https://oss.sakurafly.com/image/view.com/483b55a67893a12b048f3e2c8bae4aec.mp4"></video>{/timeline-item}{timeline-item color="#ed4014"} 配置结束{/timeline-item}{/timeline}
2022年01月04日
551 阅读
13 评论
4 点赞
2021-12-25
typecho主题头像不显示更换Gravatar源
更换Gravatar源看参照: 常用Gravatar镜像打开typecho网站根目录,找到config.inc.php,文件,添加代码:/** 更换头像源 */ define('__TYPECHO_GRAVATAR_PREFIX__', 'https://dn-qiniu-avatar.qbox.me/avatar/');
2021年12月25日
291 阅读
0 评论
0 点赞
2021-12-23
1. MySQL的binlog恢复(Windows下)
初识binlog MySQL的binlog就是大家经常所说的Binary Log,即bin-log,是MySQL存储对数据库改动的二进制文件,也就是记录了所有DDL与DML(select除外)语句. 首先查看 mysqlbinlog 是否已经打开:-- 查看MySQL的日志是否打开(log_bin项) mysql> SHOW VARIABLES LIKE 'log_bin%'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin | ON | | log_bin_trust_function_creators | OFF | +---------------------------------+-------+ 2 rows in set (0.01 sec) -- 查看日志过期时间(过期之后日志会自动删除) mysql> show variables like '%expire_logs_days%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 0 | +------------------+-------+ 1 row in set (0.00 sec) 如果 log_bin 是关闭状态的话,我们需要修改mysql配置文件.比如我的mysql安装位置是:D:\mysql\bin\mysql.exe. 所以修改D:\mysql\my.ini 文件,添加以下配置:# 如果 log_bin=mysql-bin 则日志文件会默认存放在 C:\ProgramData\MySQL\MySQL Server 5.5\data\ log-bin=D:/mysql/data/mysql-bin binlog_format=mixed # 设置日志永不过期(一般设置为10 即十天之后过期删除) expire_logs_days = 0 修改之后执行 services.msc 打开服务,重启mysql服务生效.数据恢复测试1.准备表person,插入基本数据:mysql> CREATE TABLE `person` ( -> `id` varchar(255) , -> `name` varchar(255) , -> `age` int(10) -> ); Query OK, 0 rows affected (0.02 sec) mysql> select * from person; Empty set (0.01 sec) mysql> INSERT INTO person VALUES (uuid(),'张三',18);INSERT INTO person VALUES (uuid(),'王五',30); Query OK, 1 row affected (0.00 sec) Query OK, 1 row affected (0.00 sec) mysql> select * from person; +--------------------------------------+------+------+ | id | name | age | +--------------------------------------+------+------+ | bcaa790d-6499-11ec-86bc-8c16453d981b | 张三 | 18 | | bcaae031-6499-11ec-86bc-8c16453d981b | 王五 | 30 | +--------------------------------------+------+------+ 2 rows in set (0.00 sec)2.模拟误删除person表:mysql> delete from person; Query OK, 2 rows affected (0.00 sec)3.尝试恢复表数据:{card-default label="3.1 查看binlog日志位置信息" width="100%"}查看当前日志名称:mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 1856 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)查看当前日志节点:mysql> show binlog events in 'mysql-bin.000001'; +------------------+------+-------------+-----------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +------------------+------+-------------+-----------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | mysql-bin.000001 | 4 | Format_desc | 1 | 107 | Server ver: 5.5.28-log, Binlog ver: 4 | | mysql-bin.000001 | 107 | Query | 1 | 263 | use `test`; CREATE TABLE `person` ( `id` varchar(255) , `name` varchar(255) , `age` int(10) ) | | mysql-bin.000001 | 263 | Query | 1 | 371 | use `test`; DROP TABLE `person` /* generated by server */ | | mysql-bin.000001 | 371 | Query | 1 | 522 | use `test`; CREATE TABLE `person` ( `id` varchar(255) , `name` varchar(255) , `age` int(10) ) | | mysql-bin.000001 | 522 | Query | 1 | 768 | use `test`; ALTER TABLE `person` MODIFY COLUMN `id` varchar(255) CHARACTER SET utf8 NULL DEFAULT NULL FIRST , MODIFY COLUMN `name` varchar(255) CHARACTER SET utf8 NULL DEFAULT NULL AFTER `id` | | mysql-bin.000001 | 768 | Query | 1 | 836 | BEGIN | | mysql-bin.000001 | 836 | Table_map | 1 | 887 | table_id: 36 (test.person) | | mysql-bin.000001 | 887 | Write_rows | 1 | 967 | table_id: 36 flags: STMT_END_F | | mysql-bin.000001 | 967 | Xid | 1 | 994 | COMMIT /* xid=112 */ | | mysql-bin.000001 | 994 | Query | 1 | 1062 | BEGIN | | mysql-bin.000001 | 1062 | Query | 1 | 1197 | use `test`; -- INSERT INTO person VALUES (uuid(),'张三',18); delete from person | | mysql-bin.000001 | 1197 | Xid | 1 | 1224 | COMMIT /* xid=119 */ | | mysql-bin.000001 | 1224 | Query | 1 | 1292 | BEGIN | | mysql-bin.000001 | 1292 | Table_map | 1 | 1343 | table_id: 36 (test.person) | | mysql-bin.000001 | 1343 | Write_rows | 1 | 1425 | table_id: 36 flags: STMT_END_F | | mysql-bin.000001 | 1425 | Xid | 1 | 1452 | COMMIT /* xid=123 */ | | mysql-bin.000001 | 1452 | Query | 1 | 1520 | BEGIN | | mysql-bin.000001 | 1520 | Table_map | 1 | 1571 | table_id: 36 (test.person) | | mysql-bin.000001 | 1571 | Write_rows | 1 | 1653 | table_id: 36 flags: STMT_END_F | | mysql-bin.000001 | 1653 | Xid | 1 | 1680 | COMMIT /* xid=124 */ | | mysql-bin.000001 | 1680 | Query | 1 | 1748 | BEGIN | | mysql-bin.000001 | 1748 | Query | 1 | 1829 | use `test`; delete from person | | mysql-bin.000001 | 1829 | Xid | 1 | 1856 | COMMIT /* xid=152 */ | +------------------+------+-------------+-----------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 23 rows in set (0.00 sec) 可以看待在1680节点开始到1856节点结束是处理最后的删除表操作.所以我们恢复数据的时候,只需要恢复数据到1680节点之前就行 {/card-default} {card-default label="3.2 通过binlog恢复数据" width="100%"} 打开命令窗,切换路径到与安装的mysql执行文件同目录。比如我的mysql安装路径是:D:\mysql\bin\mysql.exe,所以目录切换到*D:\mysql\bin* 。 一般有两种恢复操作:一种是将从日志文件中抽取到的sql存为件,然后执行.sql文件;另一种是直接将抽取到的sql执行.恢复命令格式如下:# 抽取sql存为文件 mysqlbinlog --start-position=开始节点号 --stop-posion=结束节点号 日志文件名称(保险起见使用使用绝对路径) > 存储位置名称 # 执行.sql文件 source 路径名称.sql # 直接执行抽取到的sql mysqlbinlog --start-position=开始节点号 --stop-posion=结束节点号 日志文件名称(保险起见使用使用绝对路径) | mysql -uroot -p123456 通过3.1的分析,可以得知需要执行的起始节点位置和日志路径.所以执行命令如下:# 第一种情况: 先存.sql 然后执行(两条命令分开执行) mysqlbinlog --start-position=4 --stop-position=1680 D:\mysql\data\mysql-bin.000001 > d:\\test1.sql source d://test1.sql # 第二种情况: 直接执行 mysqlbinlog --start-position=4 --stop-position=1680 D:\mysql\data\mysql-bin.000001 | mysql -uroot -p1216{/card-default} {callout color="#f0ad4e"}执行完毕之后可以看到,数据已经恢复到以前两条数据没有删除的状态.{/callout}
2021年12月23日
264 阅读
0 评论
1 点赞
2021-12-22
Gravatar镜像源地址大全
镜像源:{callout color="#f0ad4e"}gravatar官方的www源:https://www.gravatar.com/avatar/gravatar官方的cn源:https://cn.gravatar.com/avatar/gravatar官方的en源:https://en.gravatar.com/avatar/gravatar官方的secure源:https://secure.gravatar.com/avatar/朱纯树大佬自建的源:https://cdn.zhuchunshu.com/avatar/V2EX源:https://cdn.v2ex.com/gravatar/Loli源:https://gravatar.loli.net/avatar/极客族:https://sdn.geekzu.org/avatar/{/callout}
2021年12月22日
538 阅读
0 评论
0 点赞
2021-12-19
typecho主题中文搜索404问题解决
1. 设置伪静态:使用宝塔维护云服务器:打开网站设置面板 任意选择一个伪静态模板 2. 导入URL重写规则:{anote icon="" href="https://www.microsoft.com/web/downloads/platform.aspx" type="success" content="Web Platform Installer"/} 打开网站IIS界面,选择 IIS-->URL重写(若不存在URL重写,则安装微软官网提供的Web平台管理工具进行安装) 右侧树形选择 入站规则-->导入规则(规则如下) [ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 # 中文tag解决 RewriteRule /tag/(.*) /index\.php\?tag=$1 # sitemapxml RewriteRule /sitemap.xml /sitemap.xml [L] RewriteRule /favicon.ico /favicon.ico [L] # 内容页 RewriteRule /(.*).html /index.php/$1.html [L] # 评论 RewriteRule /(.*)/comment /index.php/$1/comment [L] # 分类页 RewriteRule /category/(.*) /index.php/category/$1 [L] # 分页 RewriteRule /page/(.*) /index.php/page/$1 [L] # 搜索页 RewriteRule /search/(.*) /index.php/search/$1 [L] # feed RewriteRule /feed/(.*) /index.php/feed/$1 [L] # 日期归档 RewriteRule /2(.*) /index.php/2$1 [L] # 上传图片等 RewriteRule /action(.*) /index.php/action$1 [L]{callout color="#f0ad4e"}可根据实际情况进行规则禁用.我只是禁用了规则10(若是不禁用会导致上传的附件不能访问).{/callout}3. 启用地址重写功能:打开主题后台管理面板,选择 设置-->永久链接 ,启用地址重写功能.若出现警告勾选,勾选之后确定即可. 4. 设置之后出现的问题:如此设置之后使用中文搜索可以进行访问.但是添加文章分类的时候会报404的错误,这时候,可以先把第一步,第三步的操作先行取消,然后填写完成分类之后,再重复设置即可.
2021年12月19日
510 阅读
0 评论
2 点赞
2021-12-19
此内容被密码保护
加密文章,请前往内页查看详情
2021年12月19日
358 阅读
0 评论
2 点赞
2021-07-21
Google voice学习尝试
{alert type="info"}教程网站: http://www.googlegv.cnGoogle Voice的最亮点是 美国本地的电话号码+无限美国本地通话+全球免费短信.事件始末:此番学习还是历经波折的,最后发现网上的好多资料已经过时,一些文档顾左右而言他,虽然尽力使有一个比较好的学习过程,可是最后还是不尽人意.探索学习的过程以此记录.事件的起因是因为做一个导航网站的时候,发现一些海淘网站的支付方式都是使用比较广泛的可以跨境支付的visa信用卡.在检索visa信用卡的时候有些网站显示可以申请一个Google voice美国虚拟号码查询得知,GV是Google提供给北美用户的,想注册GV必须有北美的实体号码.在某宝购得一个GV号,需要将所购的Google号下的GV号转移到自己的Google号下.所购的google号是美国IP注册的,以此账号登陆Google可以正常打开voice官网https://voice.google.com账号转移需要自己的Google账号和所购的被转移Google账号都可以登陆voice官网,但是因为自己的Google账号是国内IP注册的,不能正常登陆.如下图.通过查询得知如果翻墙软件的代理服务器是美国的,那么即使自己的Google账号是国内IP注册的,那也是可以访问的.但是我自己的梯子的代理服务器是香港和日本切换的,如果换梯子的话不值当,而且别的梯子价格也较高,难以承担. 这个很麻烦了,想转移就需要使自己的Google账号可以正常访问voice官网没办法,想过换一个自己的Google账号,就只能在某宝再买一个指定Google号,需要这个Google的注册地IP是美国的.但是再买一个也挺贵的,而且账号一多也难以管理在购买的时候,正在等待客户注册的过程中,突然灵机一动,虽然自己的梯子的代理服务器是日本的,不能把梯子转为美国的.但是买一个美国的云服务器,在云服务器里进行转移账号的操作不就行了吗?选择的腾讯云按年收费肯定不值当,所以选择的按量计费,一个小时大概7毛钱.先购买的是美国多伦多的服务器,在服务器上操作的时候发现登陆自己的账号还是不能访问voice官网.所以注销销毁此云服务器.重新购买了一个美国硅谷的,这个是可以访问的在云服务器上开始进行转移操作.在教程网站上按指示操作,很快就转移成功开始进行拨号发送短信操作.在手机上安装voice之后导入Google Play,但是+86拨打国内的时候,两秒之后自动挂断,绝无例外,发送短信也是不行.之后切换到官网网页版,也是如此,可以向美国号码发送短信.通过自己的手机拨打此GV号也是无法操作,在网上查询各种解决办法之后,一一尝试之后也是没法解决,最后发现参考文档很多都是两三前的,甚至有一六年的.参考价值已经很低了.如果GV号长期不使用的话,就会被收回.花费很多尽力,到此无疾而终,大失所望,算是学习路上的一大滑铁卢事件,心累啊{/alert}
2021年07月21日
205 阅读
0 评论
1 点赞
2021-07-09
Javascript中的深拷贝和浅拷贝
{alert type="success"}1.javascript变量包含两种不同数据类型的值:基本类型和引用类型。基本类型值指的是简单的数据段,包括es6里面新增的一共是有6种,具体如下: number 、 string 、 boolean 、 null 、 undefined 、 symbol 引用类型值指那些可能由多个值构成的对象,只有一种如下: object 而数组Array和对象Object的数据类型都属于引用数据类型 object 在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值。基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。引用类型的值是保存在内存中的对象。与其他语言不同,JavaScript 不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。 在操作对象时, 实际上是在操作对象的引用而不是实际的对象。2.Javascript的变量的存储方式--栈(stack)和堆(heap)栈:自动分配内存空间,系统自动释放,里面存放的是基本类型的值和引用类型的地址堆:动态分配的内存,大小不定,也不会自动释放。里面存放引用类型的值。3.值传递与址传递 //地址传递 var aa="strs"; var bb=aa; aa="strs2"; console.log(aa); //strs2 console.log(bb); //strs //浅拷贝 地址传递 var aa = { a: 1, b: 2 }; //定义对象 数组同例 var bb = aa; //此时是地址传递,两个变量指向栈上同一个地址 aa.a = 3; //改变堆上地址对应的值 console.log(aa); //{ a: 3, b: 2 }; console.log(bb); //{ a: 3, b: 2 }; //深拷贝 地址传递 var aa = { a: 1, b: 2 }; var bb = JSON.parse(JSON.stringify(aa));//序列化之后反序列化,在栈上开辟了独立空间 aa.a = 3; //改变堆上地址对应的值 console.log(aa); //{ a: 3, b: 2 }; console.log(bb); //{ a: 1, b: 2 }; 需要注意的是,如果对象比较大,层级也比较多,深复制会带来性能上的问题。在遇到需要采用深复制的场景时,可以考虑有没有其他替代的方案。在实际的应用场景中,也是浅复制更为常用.{/alert}
2021年07月09日
178 阅读
0 评论
0 点赞
2021-07-09
javascript中script标签的async和defer两种加载属性
默认情况下,浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到 <script> 标签就会停下来,等到执行完脚本,再继续向下渲染。如果是外部脚本,还必须加入脚本下载的时间。如果脚本体积很大,下载和执行的时间就会很长,因此造成浏览器堵塞,用户会感觉到浏览器“卡死”了,没有任何响应。 上面代码中,<script> 标签打开 defer 或 async 属性,脚本就会异步加载。渲染引擎遇到这一行命令,就会开始下载外部脚本,但不会等它下载和执行,而是直接执行后面的命令。两者的区别:defer 要等到整个页面在内存中正常渲染结束(DOM 结构完全生成,以及其他脚本执行完成),才会执行async 一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染一句话,defer 是 “渲染完再执行”,async 是 “下载完就执行”如果有多个 defer 脚本,会按照它们在页面出现的顺序加载,而多个 async 脚本是不能保证加载顺序的
2021年07月09日
158 阅读
0 评论
1 点赞
2021-07-08
Webstorm配置ES6自动转ES5
{alert type="success"}1.初始化npm生成package.json文件:在项目之中点击左下角 Terminal 进入命令行模式, 执行 node init ,没有修改的话一路点击确定生成package.json文件2.安装babel相关:preset使用 babel-preset-env ,如果以前使用 babel-preset-es2015 ,可以执行 npm uninstall --save-dev babel-preset-es2015 卸载# 1.安装babel-cli npm install --save-dev babel-cli # 2.安装preset npm install babel-preset-env --save-dev 3.项目根目录下建立.babelrc文件,内容如下:{ "presets": [ "env" ] }4.WebStorm配置:setting>Languages & Frameworks>JavaScript 选择 ECMAScript6setting>Tools>File Watchers ,点击右上角添加Babel,在弹出的界面选择babel.cmd的位置.可以选择项目内的node_modules下.bin文件夹下的babel.cmd.也可以选择全局安装babel之后,在C:\Users\Administrator\AppData\Roaming\npm下的babel.cmd此时配置完成,当含有ES6的js文件发生变化时,会在根目录下/dist文件夹下生成同名js文件,修改同步更新.{/alert}
2021年07月08日
138 阅读
0 评论
1 点赞
2021-07-07
Mockjax模拟Ajax响应数据
{alert type="info"}jQuery Mockjax 插件提供了简单而且极度灵活的接口,用来模拟ajax的请求和回应.在引入Mockajx之前需要先引入jquery.CDN引入使用BootCDN,下载可在GitHub下载.<!--mockjax引入--> <script src="https://cdn.bootcdn.net/ajax/libs/jquery-mockjax/2.6.0/jquery.mockjax.min.js"> </script> <script src="https://cdn.bootcdn.net/ajax/libs/jquery-mockjax/2.6.0/jquery.mockjax.js"> </script>一些不支持JSON转换的浏览器比如IE 6,7,8等,需要额外引入json.js.有以下Ajax请求需要响应数据: $.ajax({ url: '/sakura/user/login', data: { usercode: 'admin', password: 'admin' }, type: 'POST', async: false, success: function (res) { console.log(res); }, });只需要设置://设置响应数据,如果是多个虚拟mockajx设置,可使用$.mockajx([{options},{...}]) //$.mockajx({options}) Const ID=$.mockjax({//返回索引 url: '/sakura/*',//可通过通配符 正则 匹配 //模拟网络和服务器延迟(以毫秒为单位)的整数-number responseTime: '500', responseText: JSON.stringify({ status: 200, msg: '数据获取成功', }), //响应的模拟文本或模拟对象文字-String });如果响应数据是从文件获取,而不是手动设置,可设置proxy属性,值为.json文件路径. 如果同时设置proxy和responseText,则proxy配置优先执行.//通过.json文件获取响应数据 $.mockjax({ url: '/sakura/*', status: 200, //number statusText: 'success', //服务器响应代码描述-String responseTime: '500', //模拟网络和服务器延迟(以毫秒为单位)的整数-number contentType: 'application/json;', //指定响应的内容类型-String proxy: './json.json', //数据获取路径 });//.json文件 { "data": { "aa": 111, "bb": 222 } }options默认参数设置对象:$.mockjaxSettings = { logging: true, status: 200, statusText: "OK", responseTime: 500, isTimeout: false, throwUnmocked: false, contentType: 'text/plain', response: '', responseText: '', responseXML: '', proxy: '', proxyType: 'GET', lastModified: null, etag: '', headers: { etag: 'IJF@H#@923uf8023hFO@I#H#', 'content-type' : 'text/plain' } };外部函数:$.mockjax.clear(number|String ):清除模拟请求,若无参数,清除全部模拟请求(void ) number:清除具有该 ID 的处理程序 String: 清除具有该匹配 URL 的处理程序 $.mockjax.mockedAjaxCalls():返回所有模拟 ajax 调用的数组(Array<Object>){/alert}
2021年07月07日
132 阅读
0 评论
0 点赞
2021-06-29
世相
{callout color="#68d93f"} 会者定离,一期一祈, 勿怀忧也,世相如是, 唯心所向,为卿所往!{/callout}{music id="27927814" color="#d05f2f" /}
2021年06月29日
146 阅读
0 评论
1 点赞
2021-06-27
NodeJS常用命令
清除缓存{alert type="success"}npm cache clean --force{/alert}cnpm淘宝镜像安装{alert type="success"}npm install -g cnpm --registry=https://registry.npm.taobao.org {/alert}proxy代理访问{alert type="success"}npm config set registry https://registry.npm.taobao.org {/alert}安装模块{alert type="success"}## 全局安装 npm install expreess -g ## 安装到开发环境(devDependencies节点) npm install express --save-dev 等同于 npm install express -D ## 安装模块到生产环境(dependencies节点) npm install express --save 等同于 npm install express -S{/alert}版本管理工具nvm{callout color="#a8fd63"}如果想在同一台机器,同时安装多个版本的node.js,就需要用到版本管理工具nvm。{/callout}{alert type="success"}# 安装最新版本 $ nvm install node # 安装指定版本 $ nvm install 0.12.1 # 使用已安装的最新版本 $ nvm use node # 使用指定版本的node $ nvm use 0.12 # 查看本地安装的所有版本 $ nvm ls # 查看服务器上所有可供安装的版本。 $ nvm ls-remote # 退出已经激活的nvm,使用deactivate命令。 $ nvm deactivate{/alert}
2021年06月27日
154 阅读
0 评论
1 点赞
2021-06-27
yarn的安装和使用
{alert type="error"}Yarn是facebook发布的一款取代npm的包管理工具。yarn的特点:速度超快:Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全:在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。超级可靠:使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。yarn的安装:下载node.js,使用npm安装 npm install -g yarn 查看版本:yarn --version 安装node.js,下载yarn的安装程序: 提供一个.msi文件,在运行时将引导您在Windows上安装Yarn Yarn 淘宝源安装,分别复制粘贴以下代码行到黑窗口运行即可 yarn config set registry https://registry.npm.taobao.org -g yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -gnpm 与 yarn命令比较:{/alert}
2021年06月27日
146 阅读
0 评论
0 点赞
2021-06-26
npm ERR! code ENOENT
npm ERR! code ENOENT安装vue cli过程种出错,可能是由于国内直接访问路径速度比较慢,需要配置镜像增加访问速度.解决问题同时配置淘宝镜像.1、执行: npm config get proxy npm config get https-proxy 如果返回值不为null,继续执行: (要确保两个返回值都是null才可以,否则就要执行下面的代码) npm config set proxy null npm config set https-proxy null 2、执行: npm config set registry http://registry.cnpmjs.org/ 3.安装cnpm配置镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 版权声明:本文为CSDN博主「得我所得,爱我所爱」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_45914170/article/details/112298654
2021年06月26日
140 阅读
0 评论
0 点赞
1
2
3
4