我在本地建立了一个网站,前台使用 Vue.js,后台使用 Nodejs 的 Koa.js 框架。现在打算上架到服务器,服务器的操作系统是 Debian。记录一下操作步骤。
Read More →
在 Debian 上运行 Nodejs 网站后台
Windows 中有一些字符不能做文件名:
\ / : ? " < > * |
但是 Chrome 的下载 api 里,有更多的字符不能做文件名,否则下载会失败。这些字符里大多是控制字符。
Chrome 扩展下载文件时,不能使用的字符可以建立一个正则表达式,对文件名进行替换:
// 不安全的字符,是 Chrome 和 Windows 不允许做文件名的字符 const notSafeString = `[\u0001-\u001f\u007f-\u009f\u00ad\u0600-\u0605\u061c\u06dd\u070f\u08e2\u180e\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u206f\ufdd0-\ufdef\ufeff\ufff9-\ufffb\ufffe\uffff\\\/:\?"<>\*\|~]` const safeFileName = new RegExp(notSafeString, 'g') // 安全的文件名
这些字符是 Reinford 测试出来的,测试结果的文件:
链接: https://pan.baidu.com/s/1y8AVKGmasV1ZYiCErwc1Zg 提取码: q41v
此外,还有一些情况要处理。
1. Chrome 不允许文件夹和文件名的开头、结尾使用点 .
。
2. 路径首尾不允许有空格。
3. 路径中出现多个斜线会报错,如 download//a.jpg
。
Chrome 扩展下载文件时,不能使用的字符
当用户用 http 网址访问网站时,我希望可以自动跳转到 https。在 Nginx 里,可以在该网站的配置文件里用 301 跳转到 https。目前测试了两种方法都有效。
第一种方法,把 80 和 443 端口的监听分开,然后在 80 里直接 301 跳转:
server { listen 80; server_name pixiv.download; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name pixiv.download; #其余内容省略 }
Nginx 配置 http 跳转到 https
最近一周我都在优化 Pixiv 图片批量下载器,今天更新好了,增加了一个新功能:动图时自动转换为 WebM 格式的视频。
以后这些色色的动图就可以保存为视频,当做里番来看啦~
效果预览:
Pixiv 图片批量下载器转换动图
在大概 100 天之前,我写了篇文章推荐 Vivaldi 浏览器,讲解了它的各种优点,并且我抛弃了使用 7 年之久的 Chrome 浏览器,把 Vivaldi 浏览器设为了默认浏览器。100 天之后,我默默滚回了 Chrome。
Read More →
Vivaldi 浏览器 100 天实战:从入门到卸载
我想修改之前的代码,把 js 变量名转换为驼峰命名风格,如下:
// 原有代码的变量名是下划线方式 let test_name = '' test_name = document.querySelector('.test_name') // 修改成驼峰命名 let testName = ''; testName = document.querySelector('.test_name');
因为要修改的文件内容繁杂,变量名很多,手动修改不能接受,此外我还担心手动替换会影响到不该改的地方(如字符串里),所以我想找一个工具来自动转换,这样就方便多了。
Read More →
Babel 将 js 变量名转换为驼峰命名风格
今天我想让 Eslint 使用 Standard 代码风格来检查 JavaScript 代码,又折腾了许久。
其实弄明白了就简单了,安装这些依赖的 npm 包:
npm install -g standard eslint eslint-config-standard eslint-plugin-standard eslint-plugin-promise eslint-plugin-import eslint-plugin-node
如果不想全局安装,你也可以把 -g 改为 -D 进行本地安装。
安装完之后,在 .eslintrc 配置文件的 extend 规则里添加 standard,如:
{ "extends": ["standard"] }
重启项目,如果 ESlint 没有报错信息,应该就可以使用 Standard 规则检查代码了。
Read More →
ESlint 使用 Standard 代码风格
刚才,有网友告诉我本站的音乐页面不能播放音乐,我检查了一下,发现有个 php 文件报错:
Call to undefined function curl_init()
curl 我还是很眼熟的,于是打开 php.ini 看了看,原来我安装时候忘记开启了这个扩展:
;extension=php_curl.dll
去掉注释,然后重启 php 服务,我心想大功告成了,可是没想到依然报错。于是我继续搜索,找到了原因。
Read More →
Debian 安装 PHP 的 curl 扩展
在服务器上用 vim 改代码感觉很蛋疼,我想起前些时候看到 VS Code 支持了远程开发(WSL、Linux、Docker),所以就进行了一番尝试,感觉挺好。
我本机是 Windows 10,服务器是 Debian x9。下面记录下我的操作过程。
1.安装 Remote Development 扩展:
VS Code 远程开发 Remote Development 教程
Shadowsocks(R) 是很流行的翻墙软件,但是我们翻墙后,有些软件并不会自动从 Shadowsocks(R) 翻墙,需要我们进行设置。
举个例子,我有一台服务器的 ip 被国内屏蔽了,xshell 无法远程登陆上去。
xshell是可以设置代理服务器的,那么如何让它把Shadowsocks(R)作为代理服务器呢?
配置步骤如下:
Read More →