部署思路
镜像中安装软件, 搭建项目. 只是把docker当虚拟机, 并不是一个好的方式.
中间镜像只是数据的开始, 制作. 到最后的完成品. 通过一个个的镜像来一步步完成, 通过共享目录完成数据传输.
我们只需要最后一个镜像运行最后生成的数据
镜像中安装软件, 搭建项目. 只是把docker当虚拟机, 并不是一个好的方式.
中间镜像只是数据的开始, 制作. 到最后的完成品. 通过一个个的镜像来一步步完成, 通过共享目录完成数据传输.
我们只需要最后一个镜像运行最后生成的数据
博客本地搭建好后, 就想直接在云服务器跑, 但云服务器系统的选择逼死了强迫症
centos 老牌 精简 软件源老
Ubuntu 用的人多 软件较新
二者在软件的安装方式, 安装的软件的版本非常不同, 让人心力交瘁.
两边都尝试过后, 起了使用docker心.
选择了用的人多的 Ubuntu 作为操作系统后, git clone + npm install + hexo g 跑通博客 实现远端访问
考虑到了云服务器的系统多样和软件安装版本问题, 开始了在docker中搭建自己的博客.
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中, 然后发布到任何流行的 Linux 机器上
用docker下载Ubuntu镜像, 并在其中安装 git + nodejs, 生成ssh证书并在托管网站上添加, 下载项目, 构建, 发布
避免了系统对项目的干扰
如果迁移主机
要不ssh手动依次执行一下上述命令, 这和直接重新搭建自己的主机没有本质区别 (相对不用那么繁琐的软件安装 如 node + npm)
要不拷贝1个多G的镜像, 这和拷贝系统没有本质区别 (相对更小一些 更纯粹一些)
并不简单 快速
使用官方命令集 在node镜像中直接复制主机的ssh证书, 下载项目, 构建, 发布
避免了手动执行命令或拷贝镜像的麻烦
可以不需要项目 仅需Dockerfile 根据证书容器自己更新
需要在镜像中安装nginx 本质还是一个大虚拟服务器 关联性太强 容器也很大
使用node镜像复制本地项目资源 node负责项目的构建发布 nginx负责反向代理
仅有一个nginx容器运行 更小
项目和docker关联性强
项目的更新需要自己手动
每次重新更新需要重建镜像, 构建, 发布 很慢
使用node镜像复制本地项目资源 node先构建一遍 后续每次重启都更新, 构建, 发布, nginx负责反向代理
随着容器重启自动更新(从镜像创建点 相对完全更新更快) 更自动化 不用自己更新本地项目
当更改docker配置修改时自己不能主动构建镜像 会导致上述重启无意义
使用node镜像关联本地项目 每次容器重启都从本地缓存中继续更新, 构建, 发布, nginx负责反向代理
利用容器代理本地命令执行任务, 几乎和本地命令执行一致, 没有创建新的镜像. 非常快
会和本地文件一样 有很多中间或生成文件
每一步都是进步 但都会出现新的问题
这些进步不是无意义的 新的问题都是影响更小的
静态博客系统的优点就是它不需要数据库, 只需要静态文件就可以提供浏览, 这样它可以提供非常大的并发访问.
它的缺点就是每次改动的时候, 我们都需要重新构建, 这会花费一定的时间, 特别是当我们的文档数量非常庞大的时候
f12后怎么也没发现为什么不可以选中和复制
反向搜索怎样网页不可复制 找到原因 参考链接 通过设置css
jQuery支持模糊搜素 div[id*='content_']
jQuery的children也支持命令
jQuery支持remove()
每一个框架都挺博大精深 他能火成标准 那他一定能解决你面临的问题 你需要认真学习 同时也说明 每一个框架都太深了
根据文案编写插件定义 参考博客
f12 观察后发现广告栏的div都是无属性的
去除广告div 同时发现baidu自带jQuery
发现在html加载完成时baidu会重新检测广告是否加载 然后重新添加有属性的div
监听网页内容变化, 变化时移除变化
输入框实时输入后 插件不会重新运行
监听标题变化 当标题变化时 自主重新运行
需要延迟调用, 需要在baidu加载广告完成后调用
jQuery在处理dom和监听比原生方便
不是数组 但是有数组的属性 可以强行让他用数组执行 Array.prototype.forEach.call($(id).children()
加载新的网页可以不打开新的链接 同时还能有历史记录 history.pushState
开动脑筋 实时输入(网址 网页变了)和实施输入中断(网址不变 网页变了), 其实不用监听element变化 不用监听新开网页 不用监听修改历史记录 而直接监听标题 省了很多事