<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>大马的个人网站</title>
  
  <subtitle>一个技术博客</subtitle>
  <link href="/atom.xml" rel="self"/>
  
  <link href="http://bigma.cc/"/>
  <updated>2023-09-06T14:03:24.665Z</updated>
  <id>http://bigma.cc/</id>
  
  <author>
    <name>大马</name>
    
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title>群晖docker更新homeassistant</title>
    <link href="http://bigma.cc/2022/03/10/%E7%BE%A4%E6%99%96docker%E6%9B%B4%E6%96%B0homeassistant/"/>
    <id>http://bigma.cc/2022/03/10/群晖docker更新homeassistant/</id>
    <published>2022-03-09T16:20:26.000Z</published>
    <updated>2023-09-06T14:03:24.665Z</updated>
    
    <content type="html"><![CDATA[<p>docker版的homeassistant是最容易更新的，不用输入命令，点几下就搞定。<br><a id="more"></a></p><p><img src="/images/2022031009.png" alt="更新之前的版本"></p><p>打开docker</p><p>在注册表中输入homeassistant</p><p>选择 homeassistant/home-assistant 右键-下载此映像</p><p><img src="/images/2022031001.png" alt="下载镜像"></p><p>选择 latest </p><p><img src="/images/2022031002.png" alt="latest "></p><p>下载完成后，在日志中可看到</p><p><code>Add image from docker.io/homeassistant/home-assistant:latest</code></p><p><img src="/images/2022031003.png" alt="日志"></p><p>选择容器<br>关闭 homeassistant 容器</p><p><img src="/images/2022031004.png" alt="关闭 homeassistant 容器"></p><p>右键-操作-(重置)清除-是</p><p><img src="/images/2022031006.png" alt="重置"></p><p>不用担心你的数据都在，如果实在不放心，可以把镜像导出备份一下</p><p><img src="/images/2022031008.png" alt="重置"></p><p>再打开</p><p>更新成功</p><p><img src="/images/2022031010.png" alt="更新成功"></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;docker版的homeassistant是最容易更新的，不用输入命令，点几下就搞定。&lt;br&gt;
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title>开启openClash之后，github的clone报错的问题</title>
    <link href="http://bigma.cc/2022/03/09/%E5%BC%80%E5%90%AFopenClash%E4%B9%8B%E5%90%8E%EF%BC%8Cgithub%E7%9A%84clone%E6%8A%A5%E9%94%99%E7%9A%84%E9%97%AE%E9%A2%98/"/>
    <id>http://bigma.cc/2022/03/09/开启openClash之后，github的clone报错的问题/</id>
    <published>2022-03-08T16:18:20.000Z</published>
    <updated>2023-09-06T14:03:24.665Z</updated>
    
    <content type="html"><![CDATA[<p>今天在clone github 上的代码的时候发现报错了。如下图</p><p><img src="/images/2022030901.jpg" alt="github clone 报错"></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">Cloning into <span class="string">'blog'</span>...</span><br><span class="line">kex_exchange_identification: Connection closed by remote host</span><br><span class="line">Connection closed by xxx.xxx.xxx.xxx port 22</span><br><span class="line">fatal: Could not <span class="built_in">read</span> from remote repository.</span><br><span class="line"></span><br><span class="line">Please make sure you have the correct access rights</span><br><span class="line">and the repository exists.</span><br></pre></td></tr></table></figure><p>在尝试关掉openClash之后发现，可以正常了，看来是代理的问题。</p><p>经过搜索，发现只要在规则里增加一条，便可以解决问题。</p><p>我的是在路由中使用的 openClash 操作方法具体如下：</p><ul><li><p>全局设置-规则设置-打开自定义规则</p></li><li><p>在<code>rules:</code> 中增加一条 <code>- DST-PORT,22,DIRECT</code></p></li><li><p>拉到最下放 点击保存配置，应用配置</p></li></ul><p><img src="/images/2022030903.jpg" alt="openClash配置"></p><p>等待重启完成之后便可以正常clone了。</p><p><img src="/images/2022030902.jpg" alt="修复后正常clone"></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;今天在clone github 上的代码的时候发现报错了。如下图&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022030901.jpg&quot; alt=&quot;github clone 报错&quot;&gt;&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;tabl
      
    
    </summary>
    
    
      <category term="openclash" scheme="http://bigma.cc/tags/openclash/"/>
    
      <category term="github" scheme="http://bigma.cc/tags/github/"/>
    
      <category term="gitclone" scheme="http://bigma.cc/tags/gitclone/"/>
    
      <category term="失败" scheme="http://bigma.cc/tags/%E5%A4%B1%E8%B4%A5/"/>
    
  </entry>
  
  <entry>
    <title>使用pixle1手机备份照片至google Photo</title>
    <link href="http://bigma.cc/2021/10/24/%E4%BD%BF%E7%94%A8pixle1%E6%89%8B%E6%9C%BA%E5%A4%87%E4%BB%BD%E7%85%A7%E7%89%87%E8%87%B3google%20Photo/"/>
    <id>http://bigma.cc/2021/10/24/使用pixle1手机备份照片至google Photo/</id>
    <published>2021-10-23T19:23:34.000Z</published>
    <updated>2023-09-06T15:38:00.513Z</updated>
    
    <content type="html"><![CDATA[<h1 id="iPhone-通过Pixle1-无限容量特权-备份照片到谷歌相册-Google-Photo"><a href="#iPhone-通过Pixle1-无限容量特权-备份照片到谷歌相册-Google-Photo" class="headerlink" title="iPhone 通过Pixle1 无限容量特权 备份照片到谷歌相册 Google Photo"></a>iPhone 通过Pixle1 无限容量特权 备份照片到谷歌相册 Google Photo</h1><p>一直在用google photo ，各种的图片分类和整理真的很方便，还会不定期的推送，它自动合成的视频和一些动图，虽然国内也有一刻相册，ios的相册也有了类似的功能，但这些跟googlePhoto比起来还是略有不足</p><p>今年2021年6月1号开始，谷歌相册开始不免费了，再备份就会占用15GB的存储空间，我也一直在找替代方案，尝试一些其他的相册服务之后，实在是不够完美，无意间发现 pixle 1 还可以无限容量的备份，就来了思路。</p><p><strong>所需设备：主力机，Pixle1, 群晖。</strong></p><p><strong>软件： Syncthing</strong></p><p>首先从闲鱼150收了一个二手的Pixle1 , 没有声音，略有烧屏，不过便宜能用就好。</p><p><img src="/images/image-20211024030250183.png" alt="image-20211024030250183" style="zoom: 67%;"><img src="/images/image-20211024030303790.png" alt="image-20211024030303790" style="zoom: 50%;"></p><p>到手升级到了安卓10 ，居然有声音了，心想赚了，重启后又没有了，网上搜索了一下才知道，这个是当时的通病，不过无所谓了。</p><p><img src="/images/image-20211024031617312.png" alt="image-20211024031617312"></p><p>看到相册这里，的确说明可以免费无限备份</p><h4 id="群晖安装-Syncthing"><a href="#群晖安装-Syncthing" class="headerlink" title="群晖安装 Syncthing"></a>群晖安装 Syncthing</h4><p>Syncthing 介绍请看官网这里就不多做介绍了。</p><p><a href="https://docs.syncthing.net/index.html" target="_blank" rel="noopener">https://docs.syncthing.net/index.html</a></p><p>先在套件中心新增一个套件来源</p><p>名称随意这里填写：imnks</p><p>位置填写：<a href="https://spk.imnks.com" target="_blank" rel="noopener">https://spk.imnks.com</a></p><p>这里的地址仅供参考。要是无法添加可以再换一个。</p><p><img src="/images/image-20211024022648106.png" alt="image-20211024022648106"></p><p>然后就是搜索 Syncthing 点击安装。安装成功之后等待启动。</p><p><img src="/images/image-20211024022914976.png" alt="image-20211024022914976"></p><p>启动完成之后，我们在浏览器中输入  <a href="http://192.168.2.42:8384/#" target="_blank" rel="noopener">http://192.168.2.42:8384/#</a> 这里的地址换成你的NAS地址 端口号是 8384</p><p><img src="/images/image-20211024023027701.png" alt="image-20211024023027701"></p><p>先在左侧新增文件夹，下图是我配置好的</p><p><img src="/images/image-20211024023128223.png" alt="image-20211024023128223"></p><p>这里的文件夹路径可以在群晖的文件管理中右键-属性获得</p><p><img src="/images/image-20211024023426149.png" alt="image-20211024023426149"></p><p><strong>这里我是通过手机上的 Moments app 备份至群晖的，这个Moments/Mobile文件夹下 就是根据你备份设备的名称自动建立了。因为我之前已经有了大量照片，新的同步方案只用于新的照片，我把我的手机改了下名称，这样再通过 Moments 同步到群晖 就会生成一个新的文件夹。</strong></p><p>复制这里的 所在位置，填入 Syncthing 的文件夹路径中</p><p><img src="/images/image-20211024023809445.png" alt="image-20211024023809445"></p><p>第二个tab签是 要共享的设备 我这里已经有了 Pixel</p><p><img src="/images/image-20211024023903368.png" alt="image-20211024023903368"></p><p>版本控制不用启用，忽略模式这里要填上 <strong>@eaDir</strong> 这个目录是群晖的全局搜索建立的索引目录，如果不排查也会同步到 远程设备上，这个我们是不需要的。</p><p><img src="/images/image-20211024023944546.png" alt="image-20211024023944546"></p><p>高级这里我们选择仅发送即可，其他不用修改了。</p><p><img src="/images/image-20211024024134095.png" alt="image-20211024024134095"></p><h4 id="在pixle1上安装-Syncthing"><a href="#在pixle1上安装-Syncthing" class="headerlink" title="在pixle1上安装 Syncthing"></a>在pixle1上安装 Syncthing</h4><p><img src="/images/image-20211024024850128.png" alt="image-20211024024850128"></p><p>安装之后，先通过 右上角的 + 来添加设备。</p><p>这里我们打开 群晖上的 Syncthing Web端 扫码添加</p><p><img src="/images/image-20211024025011069.png" alt="image-20211024025011069"></p><p>扫码添加后就可以在手机端的设备tab签下看到了。</p><p><img src="/images/image-20211024025150938.png" alt="image-20211024025150938"></p><p>然后切换到 文件夹 tab 添加一个要接收文件的文件夹，这里要注意的是，文件夹的路径要选到 DCIM 目录下，这个是相册目录，谷歌相册自动就识别了，有文件后就自动上传。目录种类这里 选择仅接收，这样等我们手机的存储占满后可以使用谷歌相册的释放空间功能释放本地空间，也不会影响NAS上的文件。</p><p><img src="/images/image-20211024025250438.png" alt="image-20211024025250438"></p><p>至此已配置完成。之后手机上通过Moments 备份至 NAS后，Pixel1便会自动备份了，且是无限容量哦。</p><p>对了，记得关闭主力设备上的谷歌相册备份功能。</p><blockquote><p>后记：ios的 livephoto 照片通过pixle1备份到google photo 后发现是一个 照片加一个视频，跟ios 直接备份的1张动态图片有出入，我通过查询发现，google 是通过备份设备来判断的，pixle1不会生成 live photo的照片，所以备份到 google photot 就是分开的，这个暂时无解。</p></blockquote>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h1 id=&quot;iPhone-通过Pixle1-无限容量特权-备份照片到谷歌相册-Google-Photo&quot;&gt;&lt;a href=&quot;#iPhone-通过Pixle1-无限容量特权-备份照片到谷歌相册-Google-Photo&quot; class=&quot;headerlink&quot; title=&quot;iP
      
    
    </summary>
    
    
      <category term="googlePhoto" scheme="http://bigma.cc/tags/googlePhoto/"/>
    
      <category term="pixle" scheme="http://bigma.cc/tags/pixle/"/>
    
      <category term="备份照片" scheme="http://bigma.cc/tags/%E5%A4%87%E4%BB%BD%E7%85%A7%E7%89%87/"/>
    
  </entry>
  
  <entry>
    <title>阿里云OSS自动转换webP图片</title>
    <link href="http://bigma.cc/2021/06/07/%E9%98%BF%E9%87%8C%E4%BA%91OSS%E8%87%AA%E5%8A%A8%E8%BD%AC%E6%8D%A2webP%E5%9B%BE%E7%89%87/"/>
    <id>http://bigma.cc/2021/06/07/阿里云OSS自动转换webP图片/</id>
    <published>2021-06-07T09:39:56.000Z</published>
    <updated>2023-09-06T15:29:05.207Z</updated>
    
    <content type="html"><![CDATA[<p>WebP 图片格式是由 Google 基于 VP8 视频编码格式研发，其优势体现在其图像数据压缩算法，能带来更小的图片体积，而且拥有肉眼识别无差异的图像质量；同时具备了无损和有损的压缩模式、Alpha 透明以及动画的特性，在 JPEG 和 PNG 上的转化效果都相当优秀、稳定和统一。</p><p>然而，由于较早版本的浏览器不支持 WebP 格式，因此现阶段还不应将全站图片转换为 WebP 格式。目前主流自适应 WebP 解决方案包括使用<picture>标签，浏览器端 js 检测替换以及 http header 识别等。部分 CDN 服务（又拍云，腾讯云等）也已经提供了自适应 WebP 图片转换功能。考虑到现有大量图片托管在阿里云 OSS 上，并通过CDN回源加速，在为了减少工作量，考虑采用 CDN 边缘脚本 + OSS 图片处理的方法实现类似功能。</picture></p><p>但并不是所有的浏览器都支持这种图片格式，因此我们需要根据浏览器判断支持并返回正确的图片。我之前曾一直使用的又拍云是可以一键打开 WebP 自适应转换的，但阿里云这边并没有看到这样的选项，不过没关系，我们可以通过边缘脚本实现相同的功能。</p><h2 id="OSS-添加图片-WebP-样式"><a href="#OSS-添加图片-WebP-样式" class="headerlink" title="OSS 添加图片 WebP 样式"></a>OSS 添加图片 WebP 样式</h2><p>首先需要在 OSS Bucket 管理功能中添加自定义图片处理规则，并在访问设置中设置自定义分割符（例如设置为感叹号 ! ）。此时即可通过在 OSS 资源访问地址中追加样式尾缀（分隔符+规则名称，例如 !webp ）的方法对图片进行在线处理。</p><p><img src="/images/v2-6f5c54c634646c6ce5ff5c395c1d1aaa_720w.jpg" alt="img"></p><p>另外可以在访问设置中设置自定义标识符，直接通过样式输出图片。</p><p><img src="/images/v2-cb76f181a9b81900c4ead9852a11536b_720w.jpg" alt="img"></p><h2 id="CDN-设置边缘脚本实现自动跳转"><a href="#CDN-设置边缘脚本实现自动跳转" class="headerlink" title="CDN 设置边缘脚本实现自动跳转"></a>CDN 设置边缘脚本实现自动跳转</h2><p>在 CDN 管理界面添加边缘脚本，根据 HTTP 相应头判断浏览器是否支持 WebP 图片格式，如果支持则 301 重定向至包含包含图片处理尾缀 “!webp” 的访问路径，注意尾缀应与规则名称一致。</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">m1 = and($http_accept, match_re($http_accept, <span class="string">'.*image\/webp.*'</span>))</span><br><span class="line">m2 = match_re($uri, <span class="string">'.+(.JPEG|.jpeg|.JPG|.jpg|.PNG|.png)$'</span>)</span><br><span class="line"><span class="keyword">if</span> and(m1, m2) &#123;</span><br><span class="line">    rewrite(concat($uri, <span class="string">'!webp'</span>), <span class="string">'enhance_redirect'</span>, <span class="number">301</span>)</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p><img src="/images/v2-dfff057e95c3f61684564202d77c10d5_720w.jpg" alt="img"></p><p>设置完成后可在模拟环境下测试自适应重定向是否成功（Chrome浏览器中重定向，ie中无效），并可通过浏览器开发者模式检查图片是否为 WebP 格式。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;WebP 图片格式是由 Google 基于 VP8 视频编码格式研发，其优势体现在其图像数据压缩算法，能带来更小的图片体积，而且拥有肉眼识别无差异的图像质量；同时具备了无损和有损的压缩模式、Alpha 透明以及动画的特性，在 JPEG 和 PNG 上的转化效果都相当优秀、稳
      
    
    </summary>
    
    
      <category term="阿里云" scheme="http://bigma.cc/tags/%E9%98%BF%E9%87%8C%E4%BA%91/"/>
    
      <category term="OSS" scheme="http://bigma.cc/tags/OSS/"/>
    
      <category term="webP" scheme="http://bigma.cc/tags/webP/"/>
    
      <category term="图片优化" scheme="http://bigma.cc/tags/%E5%9B%BE%E7%89%87%E4%BC%98%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>阿里云OSS图片优化参数</title>
    <link href="http://bigma.cc/2021/06/07/%E9%98%BF%E9%87%8C%E4%BA%91OSS%E5%9B%BE%E7%89%87%E4%BC%98%E5%8C%96%E5%8F%82%E6%95%B0/"/>
    <id>http://bigma.cc/2021/06/07/阿里云OSS图片优化参数/</id>
    <published>2021-06-07T06:16:23.000Z</published>
    <updated>2023-09-06T15:30:18.293Z</updated>
    
    <content type="html"><![CDATA[<p>您可以通过格式转换参数，转换存储在OSS内原图的格式。本文介绍对图片进行格式转换时所用到的参数及示例。</p><h2 id="参数说明"><a href="#参数说明" class="headerlink" title="参数说明"></a>参数说明</h2><p>操作名称：<strong>format</strong></p><p>参数说明如下：</p><table><thead><tr><th style="text-align:left">取值范围</th><th style="text-align:left">描述</th></tr></thead><tbody><tr><td style="text-align:left"><strong>jpg</strong></td><td style="text-align:left">将原图保存成JPG格式，如果原图是PNG、WebP、BMP等存在透明通道的格式，默认会把透明填充成白色。</td></tr><tr><td style="text-align:left"><strong>png</strong></td><td style="text-align:left">将原图保存成PNG格式。</td></tr><tr><td style="text-align:left"><strong>webp</strong></td><td style="text-align:left">将原图保存成WebP格式。</td></tr><tr><td style="text-align:left"><strong>bmp</strong></td><td style="text-align:left">将原图保存成BMP格式。</td></tr><tr><td style="text-align:left"><strong>gif</strong></td><td style="text-align:left">原图为GIF图片则继续保存为GIF格式；原图不是GIF图片，则按原图格式保存。</td></tr><tr><td style="text-align:left"><strong>tiff</strong></td><td style="text-align:left">将原图保存成TIFF格式。</td></tr></tbody></table><h2 id="注意事项"><a href="#注意事项" class="headerlink" title="注意事项"></a>注意事项</h2><ul><li><p>图片处理包含缩放操作时，建议将格式转换参数放到处理参数的最后。</p><p>例如<code>image/resize,w_100/format,jpg</code></p></li><li><p>图片处理包含缩放和水印操作时，建议将格式转换参数添加在缩放参数之后。</p><p>例如<code>image/reisze,w_100/format,jpg/watermark,...</code></p></li></ul><h2 id="示例"><a href="#示例" class="headerlink" title="示例"></a>示例</h2><p>本文示例使用的Bucket为杭州地域名为image-demo的Bucket，图片外网访问地址为：</p><p><a href="https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.gif[![gif](/images/p139212.png)](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/zh-CN/8448459951/p139212.png)" target="_blank" rel="noopener">https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.gif[![gif](/images/p139212.png)](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/zh-CN/8448459951/p139212.png)</a></p><ul><li><p>将原图转换为PNG格式</p><p>图片处理URL为：<a href="https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.gif?x-oss-process=image/format,png[![png](/images/p139213.png)](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/zh-CN/8448459951/p139213.png)" target="_blank" rel="noopener">https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.gif?x-oss-process=image/format,png[![png](/images/p139213.png)](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/zh-CN/8448459951/p139213.png)</a></p></li><li><p>将原图转换成JPG格式，并支持渐进显示</p><p>需求及处理参数如下：</p><ul><li>图片设置为渐进显示：<code>interlace,1</code></li><li>图片转换为JPG格式：<code>format,jpg</code></li></ul><p>图片处理URL为：<a href="https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.gif?x-oss-process=image/interlace,1/format,jpg" target="_blank" rel="noopener">https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.gif?x-oss-process=image/interlace,1/format,jpg</a></p><p><img src="/images/p2555.jpg" alt="img"></p></li><li><p>将原图缩放为宽200 px，并转换为WebP格式</p><p>需求及处理参数如下：</p><ul><li>图片缩放为宽200 px：<code>resize,w_200</code></li><li>图片转换为WebP格式：<code>format,webp</code></li></ul><p>图片处理URL为：<a href="https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.gif?x-oss-process=image/resize,w_200/format,webp[![img](/images/p2559.webp)](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/zh-CN/1548459951/p2559.webp?spm=a2c4g.11186623.2.12.48fc66a35FOLP9&amp;file=p2559.webp)" target="_blank" rel="noopener">https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.gif?x-oss-process=image/resize,w_200/format,webp[![img](/images/p2559.webp)](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/zh-CN/1548459951/p2559.webp?spm=a2c4g.11186623.2.12.48fc66a35FOLP9&amp;file=p2559.webp)</a></p></li></ul><p>原文地址 <a href="https://help.aliyun.com/document_detail/44703.html?spm=a2c4g.11186623.6.752.665f7fd8tuPrz4" target="_blank" rel="noopener">https://help.aliyun.com/document_detail/44703.html?spm=a2c4g.11186623.6.752.665f7fd8tuPrz4</a></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;您可以通过格式转换参数，转换存储在OSS内原图的格式。本文介绍对图片进行格式转换时所用到的参数及示例。&lt;/p&gt;
&lt;h2 id=&quot;参数说明&quot;&gt;&lt;a href=&quot;#参数说明&quot; class=&quot;headerlink&quot; title=&quot;参数说明&quot;&gt;&lt;/a&gt;参数说明&lt;/h2&gt;&lt;p&gt;操作名
      
    
    </summary>
    
    
      <category term="阿里云" scheme="http://bigma.cc/tags/%E9%98%BF%E9%87%8C%E4%BA%91/"/>
    
      <category term="OSS" scheme="http://bigma.cc/tags/OSS/"/>
    
      <category term="webP" scheme="http://bigma.cc/tags/webP/"/>
    
      <category term="图片优化" scheme="http://bigma.cc/tags/%E5%9B%BE%E7%89%87%E4%BC%98%E5%8C%96/"/>
    
      <category term="优化参数" scheme="http://bigma.cc/tags/%E4%BC%98%E5%8C%96%E5%8F%82%E6%95%B0/"/>
    
  </entry>
  
  <entry>
    <title>windows node版本管理工具nvm的安装和使用</title>
    <link href="http://bigma.cc/2021/05/28/node%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7nvm%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8/"/>
    <id>http://bigma.cc/2021/05/28/node版本管理工具nvm的安装和使用/</id>
    <published>2021-05-27T16:09:38.000Z</published>
    <updated>2023-09-06T14:03:24.663Z</updated>
    
    <content type="html"><![CDATA[<p>在实际的前端开发工作中，我们经常要维护一些老项目使用的是较旧版本的node和npm，新的项目又要使用比较新的node和npm，这时候就要祭出node版本工具了，上次说过 Linux上的node版本工具n，这次就来看看windows上的node版本管理工具nvm如何安装和使用。<br><a id="more"></a></p><h4 id="下载安装"><a href="#下载安装" class="headerlink" title="下载安装"></a>下载安装</h4><p>官方给出了绿色版和安装版，这里推荐安装版，更方便快捷，省区了配置环境变量的麻烦。</p><p>下载地址 <a href="https://github.com/coreybutler/nvm-windows/releases" target="_blank" rel="noopener">https://github.com/coreybutler/nvm-windows/releases</a></p><p>下载 nvm-setup.zip 即可。</p><p>下载完成解压安装即可。</p><p>这里要注意的是有两个路径提示，第一个是nvm的安装路径，第二个是nodeJs的安装路径。如果你的nodeJs安装在默认路径下。一路下一步即可安装成功。</p><p><img src="/images/image-20210527234010427.png" alt="image-20210527234010427"></p><p><img src="/images/image-20210527234032258.png" alt="image-20210527234032258"></p><h4 id="使用nvm安装nodeJs"><a href="#使用nvm安装nodeJs" class="headerlink" title="使用nvm安装nodeJs"></a>使用nvm安装nodeJs</h4><p>安装 14.17.0 </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nvm install 14.17.0</span><br></pre></td></tr></table></figure><p>注意这里的版本号，需要真是存在才可以。可以去 <a href="https://nodejs.org/zh-cn/download/releases/" target="_blank" rel="noopener">https://nodejs.org/zh-cn/download/releases/</a> 查询需要的版本</p><p>如果遇到下载失败，也没有关系，我们可以到阿里的镜像网站下载对应的安装包，解压到nvm的路径里</p><p>例如我们需要 14.17.0 的版本 <a href="https://npm.taobao.org/mirrors/node/v14.17.0/" target="_blank" rel="noopener">https://npm.taobao.org/mirrors/node/v14.17.0/</a></p><p>找到 <code>node-v14.17.0-win-x64.7z</code> 下载解压至 <code>C:\Users\【这里一般是你的用户名】\AppData\Roaming\nvm\v14.17.0</code> 即可。</p><p>如果遇到安装后，node可以使用 npm 用不了也可以使用此方法。</p><h4 id="切换node版本"><a href="#切换node版本" class="headerlink" title="切换node版本"></a>切换node版本</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nvm use 14.17.0</span><br></pre></td></tr></table></figure><p>即可切换。</p><p>如果切换后使用 <code>node -v</code> 命令发现版本没有切换。可以把原来安装的nodeJs目录改掉</p><p>如我原来的nodeJs安装目录是 <code>C:\Program Files\nodejs</code> 改为 <code>C:\Program Files\nodejsx</code> 即可成功</p><h4 id="显示安装的版本"><a href="#显示安装的版本" class="headerlink" title="显示安装的版本"></a>显示安装的版本</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">nvm list</span><br><span class="line">* 14.17.0 (Currently using 64-bit executable)</span><br><span class="line">  8.17.0</span><br></pre></td></tr></table></figure><p>带* 号的则为当前版本</p><h4 id="链接汇总"><a href="#链接汇总" class="headerlink" title="链接汇总"></a>链接汇总</h4><p>nvm 下载地址 <a href="https://github.com/coreybutler/nvm-windows/releases" target="_blank" rel="noopener">https://github.com/coreybutler/nvm-windows/releases</a></p><p>nodeJs官方版本库 <a href="https://nodejs.org/zh-cn/download/releases/" target="_blank" rel="noopener">https://nodejs.org/zh-cn/download/releases/</a></p><p>阿里镜像源 <a href="https://npm.taobao.org/mirrors/node/" target="_blank" rel="noopener">https://npm.taobao.org/mirrors/node/</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;在实际的前端开发工作中，我们经常要维护一些老项目使用的是较旧版本的node和npm，新的项目又要使用比较新的node和npm，这时候就要祭出node版本工具了，上次说过 Linux上的node版本工具n，这次就来看看windows上的node版本管理工具nvm如何安装和使用。&lt;br&gt;
    
    </summary>
    
    
      <category term="node" scheme="http://bigma.cc/tags/node/"/>
    
      <category term="npm" scheme="http://bigma.cc/tags/npm/"/>
    
      <category term="nvm" scheme="http://bigma.cc/tags/nvm/"/>
    
      <category term="windows" scheme="http://bigma.cc/tags/windows/"/>
    
      <category term="版本管理" scheme="http://bigma.cc/tags/%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86/"/>
    
  </entry>
  
  <entry>
    <title>Centos 安装 NodeJs PM2 守护NUXT</title>
    <link href="http://bigma.cc/2020/06/07/centOsInstallNodeJs/"/>
    <id>http://bigma.cc/2020/06/07/centOsInstallNodeJs/</id>
    <published>2020-06-07T15:28:48.000Z</published>
    <updated>2023-09-06T14:03:24.661Z</updated>
    
    <content type="html"><![CDATA[<h1 id="获取下载链接"><a href="#获取下载链接" class="headerlink" title="获取下载链接"></a>获取下载链接</h1><p>进入以下页面，获取 Linux Binaries (x64) 的链接<br><a href="https://nodejs.org/en/download/" target="_blank" rel="noopener">https://nodejs.org/en/download/</a> </p><p>若需要其他版本请访问 <a href="https://nodejs.org/dist/" target="_blank" rel="noopener">https://nodejs.org/dist/</a></p><hr><p>以下安装步骤以 <code>node-v12.18.0-linux-x64</code> 为例，其他版本替换相应路径即可。</p><h1 id="下载"><a href="#下载" class="headerlink" title="下载"></a>下载</h1><p>wget <a href="https://nodejs.org/dist/v12.18.0/node-v12.18.0-linux-x64.tar.xz" target="_blank" rel="noopener">https://nodejs.org/dist/v12.18.0/node-v12.18.0-linux-x64.tar.xz</a></p><h1 id="解压"><a href="#解压" class="headerlink" title="解压"></a>解压</h1><p>xz -d node-v12.18.0-linux-x64.tar.xz<br>tar -xf node-v12.18.0-linux-x64.tar</p><h1 id="部署"><a href="#部署" class="headerlink" title="部署"></a>部署</h1><p>这里注意node解压的路径 以 <code>~</code> 目录为例<br>ln -s ~/node-v12.18.0-linux-x64/bin/node /usr/bin/node<br>ln -s ~/node-v12.18.0-linux-x64/bin/npm /usr/bin/npm<br>ln -s ~/node-v12.18.0-linux-x64/bin/npm /usr/bin/npx</p><h1 id="测试"><a href="#测试" class="headerlink" title="测试"></a>测试</h1><p>node -v<br>npm<br>npx</p><h1 id="安装pm2"><a href="#安装pm2" class="headerlink" title="安装pm2"></a>安装pm2</h1><p>npm i -g pm2</p><p>运行<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pm2 start npm --name &quot;package.json中的应用名称&quot; -- run start</span><br></pre></td></tr></table></figure></p><h4 id="pm2-常用命令"><a href="#pm2-常用命令" class="headerlink" title="pm2 常用命令"></a>pm2 常用命令</h4><table><thead><tr><th>说明</th><th>命令</th></tr></thead><tbody><tr><td>启动进程/应用</td><td>pm2 start bin/www 或 pm2 start app.js</td></tr><tr><td>重命名进程/应用</td><td>pm2 start app.js –name wb123</td></tr><tr><td>添加进程/应用</td><td>watch pm2 start bin/www –watch</td></tr><tr><td>结束进程/应用</td><td>pm2 stop www</td></tr><tr><td>结束所有进程/应用</td><td>pm2 stop all</td></tr><tr><td>删除进程/应用</td><td>pm2 delete www</td></tr><tr><td>删除所有进程/应用</td><td>pm2 delete all</td></tr><tr><td>列出所有进程/应用</td><td>pm2 list</td></tr><tr><td>查看某个进程/应用具体情况</td><td>pm2 describe www</td></tr><tr><td>查看进程/应用的资源消耗情况</td><td>pm2 monit</td></tr><tr><td>查看pm2的日志</td><td>pm2 logs</td></tr><tr><td>若要查看某个进程/应用的日志,使用</td><td>pm2 logs www</td></tr><tr><td>重新启动进程/应用</td><td>pm2 restart www</td></tr><tr><td>重新启动所有进程/应用</td><td>pm2 restart all</td></tr></tbody></table><h1 id="nginx-反向代理设置"><a href="#nginx-反向代理设置" class="headerlink" title="nginx 反向代理设置"></a>nginx 反向代理设置</h1><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">server &#123;</span><br><span class="line">  listen 80;</span><br><span class="line">  server_name 域名1 域名2;</span><br><span class="line">  location / &#123;</span><br><span class="line">        root /data/wwwroot/路径; # 前端文件目录</span><br><span class="line">        proxy_pass http://127.0.0.1:3000;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h1 id="pm2-开机启动"><a href="#pm2-开机启动" class="headerlink" title="pm2 开机启动"></a>pm2 开机启动</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 启动项目</span></span><br><span class="line">pm2 start npm --name <span class="string">"package.json中的应用名称"</span> -- run start</span><br><span class="line"><span class="comment"># 保存当前进程状态</span></span><br><span class="line">pm2 save</span><br><span class="line"><span class="comment"># 生成开机自启动服务</span></span><br><span class="line">pm2 startup</span><br><span class="line"><span class="comment"># 启用开机自启</span></span><br><span class="line">systemctl <span class="built_in">enable</span> pm2-root</span><br></pre></td></tr></table></figure><h4 id="错误"><a href="#错误" class="headerlink" title="错误"></a>错误</h4><ol><li><p>-bash: pm2: command not found<br>替换 node-v12.18.0-linux-x64 为你的node 版本号</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ln -s /root/node-v12.18.0-linux-x64/lib/node_modules/pm2/bin/pm2 /usr/local/bin</span><br></pre></td></tr></table></figure></li><li><p>执行 npm i失败<br>安装node-sass时会出现，Permissions Errors</p></li></ol><p>使用二进制安装的Node 会有权限问题。<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">chown -R root:root node-v8.10.0-linux-x64</span><br></pre></td></tr></table></figure></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h1 id=&quot;获取下载链接&quot;&gt;&lt;a href=&quot;#获取下载链接&quot; class=&quot;headerlink&quot; title=&quot;获取下载链接&quot;&gt;&lt;/a&gt;获取下载链接&lt;/h1&gt;&lt;p&gt;进入以下页面，获取 Linux Binaries (x64) 的链接&lt;br&gt;&lt;a href=&quot;https:/
      
    
    </summary>
    
    
      <category term="Centos" scheme="http://bigma.cc/tags/Centos/"/>
    
      <category term="NodeJs" scheme="http://bigma.cc/tags/NodeJs/"/>
    
  </entry>
  
  <entry>
    <title>navicat 恢复数据后部分表丢失</title>
    <link href="http://bigma.cc/2020/05/31/new_navcat_restore_lost_table/"/>
    <id>http://bigma.cc/2020/05/31/new_navcat_restore_lost_table/</id>
    <published>2020-05-30T16:43:29.000Z</published>
    <updated>2023-09-06T14:03:24.663Z</updated>
    
    <content type="html"><![CDATA[<h4 id="发现问题"><a href="#发现问题" class="headerlink" title="发现问题"></a>发现问题</h4><p>使用 navicat 恢复备份后发现部分表丢失<br>查看错误日志发现 创建表失败<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[Err] 1067 - Invalid default value for &apos;*******&apos;</span><br><span class="line">[Err] Failed to create Table: *******</span><br></pre></td></tr></table></figure></p><h4 id="解决方案"><a href="#解决方案" class="headerlink" title="解决方案"></a>解决方案</h4><p>搜索之后发现是因为升级到 mysql 5.7 之后默认值不兼容的问题。<br>解决办法就是修改 sql_mode</p><h4 id="解决"><a href="#解决" class="headerlink" title="解决"></a>解决</h4><p>windows 环境下进入到 mysql 的 bin 目录下<br>shift加鼠标右键 选择在此处打开PowerShell 窗口</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">.\mysql -hlocalhost -P3306 -uroot -p123123</span><br></pre></td></tr></table></figure><blockquote><p>注意这里在PowerShell下要使用 .\mysql 不是直接使用 mysql</p></blockquote><p>输入 <code>show variables like &#39;sql_mode&#39;;</code> 查看当前的 sql_mode 设置</p><table><thead><tr><th>Variable_name</th><th>Value</th></tr></thead><tbody><tr><td>sql_mode</td><td>ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION</td><td></td></tr></tbody></table><p>如果结果中包含 <code>NO_ZERO_IN_DATE, NO_ZERO_DATE</code><br>则需要修改</p><p>在命令行中执行<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">set session sql_mode=‘ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’;</span><br></pre></td></tr></table></figure></p><p>这只是临时会话有效。需要修改配置文件。</p><p>尝试使用<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">set sql_mode=‘ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’;</span><br></pre></td></tr></table></figure></p><p>也没有效果。</p><p>这里通过修改 配置文件 实现</p><p>· windows my.ini</p><p>· linux my.cnf</p><p>在配置文件[mysqld]中加上</p><blockquote><p>注意要加在[mysqld]中<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sql_mode=&apos;ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&apos;</span><br></pre></td></tr></table></figure></p></blockquote><p>重启服务器，再次导入navicat备份，全部成功</p><h4 id="附-sql-mode常用值"><a href="#附-sql-mode常用值" class="headerlink" title="附 sql_mode常用值"></a>附 sql_mode常用值</h4><table><thead><tr><th>name</th><th>desc</th></tr></thead><tbody><tr><td>ONLY_FULL_GROUP_BY</td><td>对于GROUP BY聚合操作，如果在SELECT中的列，没有在GROUP BY中出现，那么这个SQL是不合法的，因为列不在GROUP BY从句中</td></tr><tr><td>NO_AUTO_VALUE_ON_ZERO</td><td>该值影响自增长列的插入。默认设置下，插入0或NULL代表生成下一个自增长值。如果用户希望插入的值为0，而该列又是自增长的，那么这个选项就有用了。</td></tr><tr><td>STRICT_TRANS_TABLES</td><td>在该模式下，如果一个值不能插入到一个事务中，则中断当前的操作，对非事务表不做限制</td></tr><tr><td>NO_ZERO_IN_DATE</td><td>在严格模式下，不允许日期和月份为零</td></tr><tr><td>NO_ZERO_DATE</td><td>设置该值，mysql数据库不允许插入零日期，插入零日期会抛出错误而不是警告</td></tr><tr><td>ERROR_FOR_DIVISION_BY_ZERO</td><td>在insert或update过程中，如果数据被零除，则产生错误而非警告。如果未给出该模式，那么数据被零除时Mysql返回NULL</td></tr><tr><td>NO_AUTO_CREATE_USER</td><td>禁止GRANT创建密码为空的用户</td></tr><tr><td>NO_ENGINE_SUBSTITUTION</td><td>如果需要的存储引擎被禁用或未编译，那么抛出错误。不设置此值时，用默认的存储引擎替代，并抛出一个异常</td></tr><tr><td>PIPES_AS_CONCAT</td><td>将”&#124;&#124;”视为字符串的连接操作符而非或运算符，这和Oracle数据库是一样是，也和字符串的拼接函数Concat想类似</td></tr><tr><td>ANSI_QUOTES</td><td>启用ANSI_QUOTES后，不能用双引号来引用字符串，因为它被解释为识别符</td></tr></tbody></table>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h4 id=&quot;发现问题&quot;&gt;&lt;a href=&quot;#发现问题&quot; class=&quot;headerlink&quot; title=&quot;发现问题&quot;&gt;&lt;/a&gt;发现问题&lt;/h4&gt;&lt;p&gt;使用 navicat 恢复备份后发现部分表丢失&lt;br&gt;查看错误日志发现 创建表失败&lt;br&gt;&lt;figure class=&quot;hi
      
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title>使用wordpress RESTfull API 制作网站的内容管理系统</title>
    <link href="http://bigma.cc/2020/05/04/wordpress-api/"/>
    <id>http://bigma.cc/2020/05/04/wordpress-api/</id>
    <published>2020-05-04T06:29:03.000Z</published>
    <updated>2023-09-06T14:03:24.664Z</updated>
    
    <content type="html"><![CDATA[<h4 id="获取分类"><a href="#获取分类" class="headerlink" title="获取分类"></a>获取分类</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">http://ex.wordpress.com/wp-json/wp/v2/categories/分类id</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/categories?parent=父级分类id</span><br></pre></td></tr></table></figure><h4 id="获取文章列表"><a href="#获取文章列表" class="headerlink" title="获取文章列表"></a>获取文章列表</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 默认10篇</span></span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/posts</span><br><span class="line"></span><br><span class="line"><span class="comment"># 指定分类</span></span><br><span class="line">categories=分类id</span><br><span class="line"></span><br><span class="line"><span class="comment"># 带特色图片和作者信息</span></span><br><span class="line">_embed=<span class="literal">true</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 页码</span></span><br><span class="line">page=2</span><br><span class="line"></span><br><span class="line"><span class="comment"># 设置每页返回数量(1~100)</span></span><br><span class="line">per_page=2</span><br><span class="line"></span><br><span class="line"><span class="comment"># 偏移</span></span><br><span class="line">offset=1</span><br></pre></td></tr></table></figure><p>返回说明<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"># 集合中的记录总数</span><br><span class="line">X-WP-Total</span><br><span class="line"></span><br><span class="line"># 包含所有可用记录的总页数</span><br><span class="line">X-WP-TotalPages</span><br></pre></td></tr></table></figure></p><h4 id="获取文章"><a href="#获取文章" class="headerlink" title="获取文章"></a>获取文章</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">http://ex.wordpress.com/wp-json/wp/v2/posts/文章id</span><br></pre></td></tr></table></figure><h4 id="根据标签获取文章"><a href="#根据标签获取文章" class="headerlink" title="根据标签获取文章"></a>根据标签获取文章</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">http://ex.wordpress.com/wp-json/wp/v2/posts?tags=标签id</span><br></pre></td></tr></table></figure><h4 id="filter"><a href="#filter" class="headerlink" title="filter"></a>filter</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"># 指定标签的文章</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/posts?filter[tag]=library</span><br><span class="line"></span><br><span class="line"># 指定日期的文章</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/posts?filter[year]=2016&amp;filter[monthnum]=03</span><br><span class="line"></span><br><span class="line"># 指定作者的文章</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/posts?filter[author_name]=jinyun</span><br><span class="line"></span><br><span class="line"># 随机文章</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/posts?filter[orderby]=rand</span><br></pre></td></tr></table></figure><h4 id="标签"><a href="#标签" class="headerlink" title="标签"></a>标签</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">http://ex.wordpress.com/wp-json/wp/v2/tags</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/tags/3</span><br></pre></td></tr></table></figure><h4 id="媒体"><a href="#媒体" class="headerlink" title="媒体"></a>媒体</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">http://ex.wordpress.com/wp-json/wp/v2/media</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/media/3</span><br></pre></td></tr></table></figure><h4 id="页面"><a href="#页面" class="headerlink" title="页面"></a>页面</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">http://ex.wordpress.com/wp-json/wp/v2/pages</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/pages/3</span><br></pre></td></tr></table></figure><h4 id="类型"><a href="#类型" class="headerlink" title="类型"></a>类型</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">http://ex.wordpress.com/wp-json/wp/v2/types</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/types/post</span><br></pre></td></tr></table></figure><h4 id="评论"><a href="#评论" class="headerlink" title="评论"></a>评论</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">http://ex.wordpress.com/wp-json/wp/v2/comments</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/comments/2</span><br></pre></td></tr></table></figure><h4 id="用户"><a href="#用户" class="headerlink" title="用户"></a>用户</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">http://ex.wordpress.com/wp-json/wp/v2/users</span><br><span class="line">http://ex.wordpress.com/wp-json/wp/v2/users/2</span><br></pre></td></tr></table></figure><hr><h2 id="必备插件"><a href="#必备插件" class="headerlink" title="必备插件"></a>必备插件</h2><h4 id="WP-China-Yes"><a href="#WP-China-Yes" class="headerlink" title="WP-China-Yes"></a>WP-China-Yes</h4><p>安装后可以解除更新和商店的封锁，可以正常更新和安装插件<br>作者站点 <a href="https://www.ibadboy.net/archives/3204.html" target="_blank" rel="noopener">https://www.ibadboy.net/archives/3204.html</a><br>git地址 <a href="https://github.com/sunxiyuan/wp-china-yes" target="_blank" rel="noopener">https://github.com/sunxiyuan/wp-china-yes</a><br>点击 clone or download 按钮，点击 Download ZIP 既可下载<br>在wordpress 后台的安装插件处 上传安装。</p><h4 id="高级自定义字段"><a href="#高级自定义字段" class="headerlink" title="高级自定义字段"></a>高级自定义字段</h4><p>可以给文章扩展自定义字段，可根据条件显示不同的字段</p><h4 id="Simple-Custom-Post-Order-amp-amp-Post-Types-Order"><a href="#Simple-Custom-Post-Order-amp-amp-Post-Types-Order" class="headerlink" title="Simple Custom Post Order &amp;&amp; Post Types Order"></a>Simple Custom Post Order &amp;&amp; Post Types Order</h4><p>文章和栏目拖拽排序，这两个插件必须都安装，才可以实现拖拽排序</p><h4 id="Admin-Menu-Editor"><a href="#Admin-Menu-Editor" class="headerlink" title="Admin Menu Editor"></a>Admin Menu Editor</h4><p>自定义后台的菜单目录</p><h4 id="WP文件管理器"><a href="#WP文件管理器" class="headerlink" title="WP文件管理器"></a>WP文件管理器</h4><p>可以管理网站的目录</p><h4 id="REST-API-Helper"><a href="#REST-API-Helper" class="headerlink" title="REST API Helper"></a>REST API Helper</h4><p>可以让rest api 显示出 封面图片，作者，类别，和自定义字段</p><h4 id="OSS-Upload"><a href="#OSS-Upload" class="headerlink" title="OSS Upload"></a>OSS Upload</h4><p>上传图片到阿里云oss</p><h4 id="forminator"><a href="#forminator" class="headerlink" title="forminator"></a>forminator</h4><p>强大的自定义表单插件</p><h4 id="forminator-1"><a href="#forminator-1" class="headerlink" title="forminator"></a>forminator</h4><p>强大的自定义表单插件</p><h4 id="Contact-Form-7"><a href="#Contact-Form-7" class="headerlink" title="Contact Form 7"></a>Contact Form 7</h4><p>表单插件，可支持 REST API<br><a href="http://www.yourdomain.com[你的域名]/wp-json/contact-form-7/v1/contact-forms/358[表单ID]/feedback" target="_blank" rel="noopener">http://www.yourdomain.com[你的域名]/wp-json/contact-form-7/v1/contact-forms/358[表单ID]/feedback</a></p><p>插件只支持发送到邮件，但可以通过 Flamingo 插件保存信息<br>说明 <a href="https://contactform7.com/save-submitted-messages-with-flamingo/" target="_blank" rel="noopener">https://contactform7.com/save-submitted-messages-with-flamingo/</a><br>在额外的设置标签下添加 [the-email-field] 为配置中的字段<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">skip_mail: on</span><br><span class="line">flamingo_email: &quot;[the-email-field]&quot;</span><br><span class="line">flamingo_name: &quot;[the-name-field]&quot;</span><br><span class="line">flamingo_subject: &quot;[the-subject-field]&quot;</span><br></pre></td></tr></table></figure></p><p><code>skip_mail: on</code> 为跳过邮件发送<br>启用插件后，可在目录中找到Flamingo 点击进入收件箱<br>数据保存在 <code>wp_postmeta</code> 表中</p><h4 id="aliyun-cdn-helper"><a href="#aliyun-cdn-helper" class="headerlink" title="aliyun-cdn-helper"></a>aliyun-cdn-helper</h4><p>刷新阿里云的cdn服务<br><a href="https://github.com/0xJacky/aliyun-cdn-helper" target="_blank" rel="noopener">https://github.com/0xJacky/aliyun-cdn-helper</a></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h4 id=&quot;获取分类&quot;&gt;&lt;a href=&quot;#获取分类&quot; class=&quot;headerlink&quot; title=&quot;获取分类&quot;&gt;&lt;/a&gt;获取分类&lt;/h4&gt;&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre
      
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title>使用VSCode调试Nuxt.js</title>
    <link href="http://bigma.cc/2020/05/01/debug-nuxt/"/>
    <id>http://bigma.cc/2020/05/01/debug-nuxt/</id>
    <published>2020-04-30T16:00:20.000Z</published>
    <updated>2023-09-06T14:03:24.661Z</updated>
    
    <content type="html"><![CDATA[<p>由于Nuxt是在服务端获取API接口数据的，所有无法在浏览器中直接调试。</p><p>下面介绍使用VSCode调试Nuxt.js的服务端接口</p><a id="more"></a><p>点击 VSCode 侧栏上的 debug 工具，选择添加配置文件</p><p><img src="/images/Snipaste_2020-05-01_00-05-06.jpg" alt="添加配置文件"></p><p>添加如下内容</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    <span class="attr">"version"</span>: <span class="string">"0.2.0"</span>,</span><br><span class="line">    <span class="attr">"configurations"</span>: [</span><br><span class="line">        </span><br><span class="line">        &#123;</span><br><span class="line">            <span class="attr">"type"</span>: <span class="string">"node"</span>,</span><br><span class="line">            <span class="attr">"request"</span>: <span class="string">"attach"</span>,</span><br><span class="line">            <span class="attr">"name"</span>: <span class="string">"调试nuxt"</span>,</span><br><span class="line">            <span class="attr">"processId"</span>: <span class="string">"$&#123;command:PickProcess&#125;"</span>,</span><br><span class="line">            <span class="attr">"port"</span>: <span class="number">9229</span></span><br><span class="line">        &#125;</span><br><span class="line">    ]</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>然后运行 <code>npm run dev</code></p><p>选择好配置文件后，点击签名的小三角开始调试，会弹出窗口提示选择node.js进程。选择nuxt 本地的调试进程就好。默认是3000的端口</p><p><img src="/images/image-20200501001312616.png" alt="image-20200501001312616"></p><p>之后就进入了调试状态。</p><p>在VSCode中打上响应的断点，然后刷新对应的页面，就可以愉快的debug了。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;由于Nuxt是在服务端获取API接口数据的，所有无法在浏览器中直接调试。&lt;/p&gt;
&lt;p&gt;下面介绍使用VSCode调试Nuxt.js的服务端接口&lt;/p&gt;
    
    </summary>
    
    
      <category term="VSCode" scheme="http://bigma.cc/tags/VSCode/"/>
    
      <category term="debug" scheme="http://bigma.cc/tags/debug/"/>
    
      <category term="nuxt" scheme="http://bigma.cc/tags/nuxt/"/>
    
  </entry>
  
  <entry>
    <title>go/beego 从入门到部署</title>
    <link href="http://bigma.cc/2020/04/25/about-go/"/>
    <id>http://bigma.cc/2020/04/25/about-go/</id>
    <published>2020-04-24T16:57:02.000Z</published>
    <updated>2023-09-06T14:03:24.661Z</updated>
    
    <content type="html"><![CDATA[<h4 id="go-get-失败的问题"><a href="#go-get-失败的问题" class="headerlink" title="go get 失败的问题"></a>go get 失败的问题</h4><p>使用七牛云的中国代理 <a href="https://goproxy.cn/" target="_blank" rel="noopener">https://goproxy.cn/</a><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">$ go env -w GO111MODULE=on</span><br><span class="line">$ go env -w GOPROXY=https://goproxy.cn,direct</span><br><span class="line"></span><br><span class="line"># macOs</span><br><span class="line">$ export GO111MODULE=on</span><br><span class="line">$ export GOPROXY=https://goproxy.cn</span><br><span class="line"></span><br><span class="line"># windows</span><br><span class="line">C:\&gt; $env:GO111MODULE = &quot;on&quot;</span><br><span class="line">C:\&gt; $env:GOPROXY = &quot;https://goproxy.cn&quot;</span><br></pre></td></tr></table></figure></p><h4 id="安装Go"><a href="#安装Go" class="headerlink" title="安装Go"></a>安装Go</h4><p><a href="https://golang.google.cn/dl/" target="_blank" rel="noopener">https://golang.google.cn/dl/</a></p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"># 查看版本号</span><br><span class="line">go version</span><br><span class="line"></span><br><span class="line"># 查看环境变量</span><br><span class="line">go env</span><br></pre></td></tr></table></figure><p>vscode 开发可以安装 go的插件</p><h4 id="一个Demo"><a href="#一个Demo" class="headerlink" title="一个Demo"></a>一个Demo</h4><p>main.go<br><figure class="highlight golang"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">package</span> main</span><br><span class="line"></span><br><span class="line"><span class="keyword">import</span> <span class="string">"fmt"</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">func</span> <span class="title">main</span><span class="params">()</span></span> &#123;</span><br><span class="line">fmt.Println(<span class="string">"你好"</span>)</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure></p><p>运行<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">go run main.go</span><br></pre></td></tr></table></figure></p><h4 id="基本语法"><a href="#基本语法" class="headerlink" title="基本语法"></a>基本语法</h4><p>变量定义<br><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 变量名称由数字、字母、下划线组成，首个字符不能为数字</span></span><br><span class="line">var 变量名称 类型 = 值 </span><br><span class="line"></span><br><span class="line"><span class="comment"># 类型推导</span></span><br><span class="line">var 变量名称 := 值 </span><br><span class="line"></span><br><span class="line"><span class="comment"># 一次声明多个变量</span></span><br><span class="line">var 变量名称,变量名称 类型 //类型一致</span><br><span class="line">var ( //类型不一致</span><br><span class="line">    变量名称 类型</span><br><span class="line">    变量名称 类型</span><br><span class="line">    变量名称 类型</span><br><span class="line">)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 短变量声明法 只能在函数内部使用，不是全局变量</span></span><br><span class="line">变量名称 := 值 </span><br><span class="line"></span><br><span class="line"><span class="comment"># 短变量一次声明多个</span></span><br><span class="line">变量名称,变量名称,变量名称 := value1, value2, value3</span><br><span class="line"></span><br><span class="line"><span class="comment"># 匿名变量 用来忽略某些值 ,如果一个函数返回两个值，但只需要一个值的时候可以使用匿名变量 _</span></span><br></pre></td></tr></table></figure></p><blockquote><p>变量定义后必须使用，声明后不赋值则为空</p></blockquote><p>常量<br><figure class="highlight golang"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">const</span> pi = <span class="number">3.14</span></span><br><span class="line"></span><br><span class="line">pi = <span class="number">2</span> <span class="comment">//error 常量不可改变</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// n1 n2 n3 n4 都是100</span></span><br><span class="line"><span class="keyword">const</span> (</span><br><span class="line">    n1 = <span class="number">100</span></span><br><span class="line">    n2</span><br><span class="line">    n3</span><br><span class="line">    n4</span><br><span class="line">)</span><br><span class="line"></span><br><span class="line"><span class="comment">// iota</span></span><br><span class="line"><span class="keyword">const</span> (</span><br><span class="line">    n1 = <span class="literal">iota</span> <span class="comment">//0</span></span><br><span class="line">    n2 <span class="comment">//1</span></span><br><span class="line">    n3 <span class="comment">//2</span></span><br><span class="line">    n4 <span class="comment">//3</span></span><br><span class="line">    _ <span class="comment">//跳过</span></span><br><span class="line">    n5 <span class="comment">//5</span></span><br><span class="line">)</span><br><span class="line"></span><br><span class="line"><span class="keyword">const</span> (</span><br><span class="line">    n1, n2 = <span class="literal">iota</span>+<span class="number">1</span>, <span class="literal">iota</span>+<span class="number">2</span> <span class="comment">//1 2</span></span><br><span class="line">    n3, n4 <span class="comment">// 3 4</span></span><br><span class="line">)</span><br></pre></td></tr></table></figure></p><blockquote><p>go fmt fileName.go 可以格式化代码</p></blockquote><p>数据类型<br><figure class="highlight golang"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 1 int int8 int16 int32 int64</span></span><br><span class="line"><span class="keyword">var</span> num <span class="keyword">int</span> = <span class="number">10</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 类型转换 int8 转换成 int16</span></span><br><span class="line"><span class="keyword">var</span> num1 <span class="keyword">int8</span> = <span class="number">10</span></span><br><span class="line"><span class="keyword">int16</span>(num1)</span><br></pre></td></tr></table></figure></p><h4 id="内置函数"><a href="#内置函数" class="headerlink" title="内置函数"></a>内置函数</h4><p>打印方法<br>fmt 包<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">ftm.Println(&quot;&quot;) //换行打印 </span><br><span class="line">fmt.Print(&quot;&quot;)      //不换行打印 </span><br><span class="line">fmt.Printf(&quot;类型:%T, 值1:%v, 值2:%v&quot;, 变量1, 变量2, 变量3) </span><br><span class="line">// %v 原样输出；%d 10进制输出； %b 2进制输出；%o 8进制 %x 16进制</span><br></pre></td></tr></table></figure></p><p>unsafe.Sizeof 可以查看不同长度的整型，在内存中的存储空间<br><figure class="highlight golang"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> a <span class="keyword">int8</span> = <span class="number">99</span></span><br><span class="line">fmt.Println(unsafe.Sizeof(a))</span><br></pre></td></tr></table></figure></p><h4 id="安装beego-及-bee-工具"><a href="#安装beego-及-bee-工具" class="headerlink" title="安装beego 及 bee 工具"></a>安装beego 及 bee 工具</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">go get -u github.com/astaxie/beego</span><br><span class="line"></span><br><span class="line">$ go get -u github.com/beego/bee</span><br></pre></td></tr></table></figure><h4 id="创建一个API项目"><a href="#创建一个API项目" class="headerlink" title="创建一个API项目"></a>创建一个API项目</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">bee api projectName</span><br></pre></td></tr></table></figure><p>正在施工…</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h4 id=&quot;go-get-失败的问题&quot;&gt;&lt;a href=&quot;#go-get-失败的问题&quot; class=&quot;headerlink&quot; title=&quot;go get 失败的问题&quot;&gt;&lt;/a&gt;go get 失败的问题&lt;/h4&gt;&lt;p&gt;使用七牛云的中国代理 &lt;a href=&quot;https://go
      
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title>常用linux命令</title>
    <link href="http://bigma.cc/2020/04/22/linux-command/"/>
    <id>http://bigma.cc/2020/04/22/linux-command/</id>
    <published>2020-04-22T15:07:07.000Z</published>
    <updated>2023-09-06T14:03:24.663Z</updated>
    
    <content type="html"><![CDATA[<h4 id="tar压缩-解压缩"><a href="#tar压缩-解压缩" class="headerlink" title="tar压缩 解压缩"></a>tar压缩 解压缩</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 压缩</span></span><br><span class="line">tar czvf filename.tar dirname</span><br><span class="line"></span><br><span class="line"><span class="comment"># 解压缩</span></span><br><span class="line">tar zxvf filename.tar</span><br></pre></td></tr></table></figure><h4 id="指定用户或组-将目前目录下的所有文件与子目录的拥有者皆设为-www，群体的使用者-www"><a href="#指定用户或组-将目前目录下的所有文件与子目录的拥有者皆设为-www，群体的使用者-www" class="headerlink" title="指定用户或组 将目前目录下的所有文件与子目录的拥有者皆设为 www，群体的使用者 www:"></a>指定用户或组 将目前目录下的所有文件与子目录的拥有者皆设为 www，群体的使用者 www:</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">chown -R www.www *</span><br></pre></td></tr></table></figure><h4 id="iptables"><a href="#iptables" class="headerlink" title="iptables"></a>iptables</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"># 查看 iptables</span><br><span class="line">iptables -nvL</span><br><span class="line"></span><br><span class="line"># 添加规则 这里添加了一个 3306 端口</span><br><span class="line">iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT</span><br><span class="line"></span><br><span class="line"># 保存</span><br><span class="line">service iptables save</span><br></pre></td></tr></table></figure><h4 id="mysql数据库"><a href="#mysql数据库" class="headerlink" title="mysql数据库"></a>mysql数据库</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 登录数据库</span></span><br><span class="line">mysql -uroot -p</span><br><span class="line"></span><br><span class="line"><span class="comment"># 创建一个用户</span></span><br><span class="line">create user username@<span class="string">'%'</span> identified by <span class="string">'password'</span>;</span><br><span class="line"></span><br><span class="line"><span class="comment"># 授权</span></span><br><span class="line">grant all privileges on *.* to windy_db@<span class="string">'%'</span> with grant option;</span><br><span class="line"><span class="comment">#  *.* 为所有权限， 也可以指定库和表 dbname.tablename</span></span><br><span class="line"><span class="comment">#  grant all privileges 为授权所有操作，也可单独指定  grant select,insert,update,delete,create,drop</span></span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h4 id=&quot;tar压缩-解压缩&quot;&gt;&lt;a href=&quot;#tar压缩-解压缩&quot; class=&quot;headerlink&quot; title=&quot;tar压缩 解压缩&quot;&gt;&lt;/a&gt;tar压缩 解压缩&lt;/h4&gt;&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td
      
    
    </summary>
    
    
      <category term="linux" scheme="http://bigma.cc/tags/linux/"/>
    
      <category term="command" scheme="http://bigma.cc/tags/command/"/>
    
      <category term="常用" scheme="http://bigma.cc/tags/%E5%B8%B8%E7%94%A8/"/>
    
      <category term="命令" scheme="http://bigma.cc/tags/%E5%91%BD%E4%BB%A4/"/>
    
  </entry>
  
  <entry>
    <title>centos更新node和npm版本</title>
    <link href="http://bigma.cc/2020/04/11/centos-update-npm-node/"/>
    <id>http://bigma.cc/2020/04/11/centos-update-npm-node/</id>
    <published>2020-04-10T17:19:32.000Z</published>
    <updated>2023-09-06T14:03:24.661Z</updated>
    
    <content type="html"><![CDATA[<h2 id="使用-n-工具-管理node-版本"><a href="#使用-n-工具-管理node-版本" class="headerlink" title="使用 n 工具 管理node 版本"></a>使用 n 工具 管理node 版本</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install -g n</span><br></pre></td></tr></table></figure><p>安装node</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">n 版本号</span><br><span class="line"></span><br><span class="line"><span class="comment"># 安装最新的稳定版本</span></span><br><span class="line">n stable</span><br><span class="line"></span><br><span class="line"><span class="comment"># 安装最新版本</span></span><br><span class="line">n latest</span><br></pre></td></tr></table></figure><p>列表所有安装的版本</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">n list</span><br></pre></td></tr></table></figure><p>切换版本</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 会显示一个可交互选择的列表</span></span><br><span class="line">n</span><br><span class="line"></span><br><span class="line"><span class="comment"># 切换至指定版本</span></span><br><span class="line">n 版本号</span><br></pre></td></tr></table></figure><p>删除版本</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">n rm 版本号</span><br></pre></td></tr></table></figure><h4 id="错误处理"><a href="#错误处理" class="headerlink" title="错误处理"></a>错误处理</h4><p>如果npm -v报一下错误</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Segmentation fault</span><br></pre></td></tr></table></figure><p>使用 n 5.10.1 安装一个低版本 </p><p>然后 n list 列出所有按装的版本</p><p>n rm 12.16.1 删除错误的版本</p><p>n stable 安装最新的稳定版本</p><h2 id="npm版本管理"><a href="#npm版本管理" class="headerlink" title="npm版本管理"></a>npm版本管理</h2><p>升级</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm i -g npm</span><br></pre></td></tr></table></figure><p>若升级后版本没有变化</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">获取当前npm 路径 查看路径是否是最新的npm 路径</span><br><span class="line"></span><br><span class="line">npm config get prefix</span><br><span class="line"></span><br><span class="line">重新设置npm路径</span><br><span class="line"></span><br><span class="line">npm config <span class="built_in">set</span> prefix /usr/<span class="built_in">local</span></span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;使用-n-工具-管理node-版本&quot;&gt;&lt;a href=&quot;#使用-n-工具-管理node-版本&quot; class=&quot;headerlink&quot; title=&quot;使用 n 工具 管理node 版本&quot;&gt;&lt;/a&gt;使用 n 工具 管理node 版本&lt;/h2&gt;&lt;figure class
      
    
    </summary>
    
    
      <category term="centos" scheme="http://bigma.cc/tags/centos/"/>
    
      <category term="node" scheme="http://bigma.cc/tags/node/"/>
    
      <category term="npm" scheme="http://bigma.cc/tags/npm/"/>
    
      <category term="update" scheme="http://bigma.cc/tags/update/"/>
    
      <category term="更新" scheme="http://bigma.cc/tags/%E6%9B%B4%E6%96%B0/"/>
    
      <category term="Segmentation fault" scheme="http://bigma.cc/tags/Segmentation-fault/"/>
    
  </entry>
  
  <entry>
    <title>使用weinre在windows上调试ios页面</title>
    <link href="http://bigma.cc/2019/12/17/%E4%BD%BF%E7%94%A8weinre%E5%9C%A8windows%E4%B8%8A%E8%B0%83%E8%AF%95ios%E9%A1%B5%E9%9D%A2/"/>
    <id>http://bigma.cc/2019/12/17/使用weinre在windows上调试ios页面/</id>
    <published>2019-12-17T03:54:53.000Z</published>
    <updated>2023-09-06T14:03:24.664Z</updated>
    
    <content type="html"><![CDATA[<p>想调试ios页面却没有mac电脑，ios-webkit-debug-proxy 又有各种问题链接不上。可以试下 weinre！  不挑系统，都能调试，只要在要调试的脚本中添加一段js就好。对于在线的页面也可以使用抓包工具注入js脚本调试。<br><a id="more"></a></p><h4 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install weinre -g --registry=https://registry.npm.taobao.org</span><br></pre></td></tr></table></figure><p>运行</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">weinre --httpPort 8081 --boundHost -all-</span><br></pre></td></tr></table></figure><p>然后使用浏览器打开 <code>http://localhost:8081/</code> 可以看到</p><p><img src="/images/image-20191213104301478.png" alt="image-20191213104301478"></p><p>在需要调试的页面上插入一段js</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">"http://换成你的ip:8081/target/target-script-min.js#anonymous"</span>&gt;</span><span class="undefined"></span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure><h4 id="手机页面的本地调试"><a href="#手机页面的本地调试" class="headerlink" title="手机页面的本地调试"></a>手机页面的本地调试</h4><ul><li><p>本地起一个服务器，使用xampp 或 phpStudy 或其他你顺手的都可以。</p></li><li><p>本地开热点，windows 10 自带，如果你是台式机可能需要一个无线网卡才行</p></li><li><p>配置本地host 执行本地的服务器，服务器也要配置相应的域名</p></li></ul><p>手机连上热点就可以使用Host中配置的域名访问本地站点了。</p><blockquote><p>tips: 可能需要关闭本地的防火墙能访问到 weinre 的脚本，或者把node.js添加到排除中，可以在手机上直接访问脚本试试。</p></blockquote><h4 id="调试"><a href="#调试" class="headerlink" title="调试"></a>调试</h4><p>点击 Access Points 下的 debug client user interface</p><p><img src="/images/image-20191213112119445.png" alt="image-20191213112119445"></p><p>在 Targets 中选中要调试的页面</p><p><img src="/images/image-20191213112238352.png" alt="image-20191213112238352"></p><p>就可以愉快的调试了，类似于 chrome 的控制台。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;想调试ios页面却没有mac电脑，ios-webkit-debug-proxy 又有各种问题链接不上。可以试下 weinre！  不挑系统，都能调试，只要在要调试的脚本中添加一段js就好。对于在线的页面也可以使用抓包工具注入js脚本调试。&lt;br&gt;
    
    </summary>
    
    
      <category term="debug" scheme="http://bigma.cc/tags/debug/"/>
    
      <category term="ios" scheme="http://bigma.cc/tags/ios/"/>
    
      <category term="windows" scheme="http://bigma.cc/tags/windows/"/>
    
      <category term="weinre" scheme="http://bigma.cc/tags/weinre/"/>
    
      <category term="调试" scheme="http://bigma.cc/tags/%E8%B0%83%E8%AF%95/"/>
    
  </entry>
  
  <entry>
    <title>js各种高度的获取</title>
    <link href="http://bigma.cc/2019/07/18/jsHeight/"/>
    <id>http://bigma.cc/2019/07/18/jsHeight/</id>
    <published>2019-07-18T09:02:32.000Z</published>
    <updated>2023-09-06T14:03:24.662Z</updated>
    
    <content type="html"><![CDATA[<p>js各种高度的获取<br><a id="more"></a><br><img src="/images/jsHeight.jpg" alt="js各种高度示意图"></p><h4 id="距离父元素顶部的距离"><a href="#距离父元素顶部的距离" class="headerlink" title="距离父元素顶部的距离"></a>距离父元素顶部的距离</h4><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// js</span></span><br><span class="line">ele.offsetTop;</span><br><span class="line"></span><br><span class="line"><span class="comment">// jq</span></span><br><span class="line">$(<span class="string">'ele'</span>).offset().top;</span><br></pre></td></tr></table></figure><h4 id="网页被卷起来的高度"><a href="#网页被卷起来的高度" class="headerlink" title="网页被卷起来的高度"></a>网页被卷起来的高度</h4><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// js</span></span><br><span class="line"><span class="built_in">document</span>.documentElement.scrollTop || <span class="built_in">document</span>.body.scrollTop</span><br><span class="line"><span class="built_in">window</span>.pageYOffset</span><br><span class="line"></span><br><span class="line"><span class="comment">// jq</span></span><br><span class="line">$(<span class="built_in">window</span>).scrollTop()</span><br></pre></td></tr></table></figure><h4 id="元素的高度-宽度"><a href="#元素的高度-宽度" class="headerlink" title="元素的高度/宽度"></a>元素的高度/宽度</h4><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// js</span></span><br><span class="line"><span class="built_in">document</span>.querySelector(<span class="string">'.eleClass'</span>).clientHeight;</span><br><span class="line"></span><br><span class="line"><span class="comment">// jq</span></span><br><span class="line">$(<span class="string">'.eleClass'</span>).height();</span><br></pre></td></tr></table></figure><h4 id="窗口的高度"><a href="#窗口的高度" class="headerlink" title="窗口的高度"></a>窗口的高度</h4><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//js</span></span><br><span class="line"><span class="built_in">window</span>.innerHeight || <span class="built_in">document</span>.documentElement.clientHeight</span><br></pre></td></tr></table></figure><h4 id="getBoundingClientRect"><a href="#getBoundingClientRect" class="headerlink" title="getBoundingClientRect"></a>getBoundingClientRect</h4><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//元素顶部距窗口顶部的距离</span></span><br><span class="line">element.getBoundingClientRect().top </span><br><span class="line"></span><br><span class="line"><span class="comment">//元素底部部距窗口顶部的距离</span></span><br><span class="line">element.getBoundingClientRect().bottom</span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;js各种高度的获取&lt;br&gt;
    
    </summary>
    
    
      <category term="offsetTop" scheme="http://bigma.cc/tags/offsetTop/"/>
    
      <category term="pageYOffset" scheme="http://bigma.cc/tags/pageYOffset/"/>
    
      <category term="clientHeight" scheme="http://bigma.cc/tags/clientHeight/"/>
    
      <category term="getBoundingClientRect" scheme="http://bigma.cc/tags/getBoundingClientRect/"/>
    
  </entry>
  
  <entry>
    <title>hassio 折腾 未完工</title>
    <link href="http://bigma.cc/2019/04/10/hassio/"/>
    <id>http://bigma.cc/2019/04/10/hassio/</id>
    <published>2019-04-09T16:25:15.000Z</published>
    <updated>2023-09-06T14:03:24.662Z</updated>
    
    <content type="html"><![CDATA[<h1 id="树莓派安装-hass-io-折腾记"><a href="#树莓派安装-hass-io-折腾记" class="headerlink" title="树莓派安装 hass.io 折腾记"></a>树莓派安装 hass.io 折腾记</h1><h4 id="下载烧录"><a href="#下载烧录" class="headerlink" title="下载烧录"></a>下载烧录</h4><p>这是官方的下载地址</p><p><a href="https://www.home-assistant.io/hassio/installation/" target="_blank" rel="noopener">https://www.home-assistant.io/hassio/installation/</a></p><p>一开始下的1.12版怎么也进不去系统，后来换了1.1版才可以。</p><p><a href="https://github.com/home-assistant/hassos/releases/download/1.1/hassos_rpi3-64-1.1.img.gz" target="_blank" rel="noopener">https://github.com/home-assistant/hassos/releases/download/1.1/hassos_rpi3-64-1.1.img.gz</a></p><p>然后下载一个烧录工具etcher</p><p><a href="https://www.balena.io/etcher/" target="_blank" rel="noopener">https://www.balena.io/etcher/</a></p><p>把镜像烧到sd卡中</p><p>需要16G 以上的 TF 卡 官方推荐32G的卡 </p><h4 id="配置无限连接"><a href="#配置无限连接" class="headerlink" title="配置无限连接"></a>配置无限连接</h4><p>配置 wifi 需要单独准备一个U盘来存放wifi连接信息</p><p><a href="https://github.com/home-assistant/hassos/blob/dev/Documentation/network.md" target="_blank" rel="noopener">https://github.com/home-assistant/hassos/blob/dev/Documentation/network.md</a></p><p>uuid 的生成地址 <a href="https://www.uuidgenerator.net/" target="_blank" rel="noopener">https://www.uuidgenerator.net/</a></p><p>在<code>network</code>文件夹内创建文件<code>my-network</code> </p><p>修改其中的 ssid为你的wifi psk 为你的wifi密码</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">[connection]</span><br><span class="line">id=hassos-network</span><br><span class="line">uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3</span><br><span class="line">type=802-11-wireless</span><br><span class="line"></span><br><span class="line">[802-11-wireless]</span><br><span class="line">mode=infrastructure</span><br><span class="line">ssid=MY_SSID</span><br><span class="line"></span><br><span class="line">[802-11-wireless-security]</span><br><span class="line">auth-alg=open</span><br><span class="line">key-mgmt=wpa-psk</span><br><span class="line">psk=MY_WLAN_SECRET_KEY</span><br><span class="line"></span><br><span class="line">[ipv4]</span><br><span class="line">method=auto</span><br><span class="line"></span><br><span class="line">[ipv6]</span><br><span class="line">addr-gen-mode=stable-privacy</span><br><span class="line">method=auto</span><br></pre></td></tr></table></figure><h4 id="安装-HASSIO"><a href="#安装-HASSIO" class="headerlink" title="安装 HASSIO"></a>安装 HASSIO</h4><p>一定要给安装hassio的树莓派全程翻墙</p><p>启动后过一会访问hassio.loacl:8123会看到一个蓝色的房子让你等20分钟，如果你翻墙网速够好也就20分钟的事，要不然可能永远也不会好。</p><h4 id="添加插件源"><a href="#添加插件源" class="headerlink" title="添加插件源"></a>添加插件源</h4><p>Hass.io -&gt; ADD-ON STORE</p><p><strong><a href="https://github.com/hassio-addons/repository" target="_blank" rel="noopener">https://github.com/hassio-addons/repository</a></strong> </p><p>主要的插件</p><h5 id="SSH-server"><a href="#SSH-server" class="headerlink" title="SSH server"></a>SSH server</h5><p>可以让你ssh连接hass.io</p><p>配置也比较简单</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">  <span class="attr">"authorized_keys"</span>: [],</span><br><span class="line">  <span class="attr">"password"</span>: <span class="string">"youPassWord"</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h5 id="Configurator"><a href="#Configurator" class="headerlink" title="Configurator"></a>Configurator</h5><p>可以在页面上编辑hass.io的配置文件，配置文件是hass.io的核心内容，通过简单的配置在不用安装插件的情况下就可以接入大量智能设备</p><p>配置</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">  <span class="attr">"username"</span>: <span class="string">"yourUserName"</span>,</span><br><span class="line">  <span class="attr">"password"</span>: <span class="string">"yourPassWord"</span>,</span><br><span class="line">  <span class="attr">"ssl"</span>: <span class="literal">false</span>,</span><br><span class="line">  <span class="attr">"certfile"</span>: <span class="string">"fullchain.pem"</span>,</span><br><span class="line">  <span class="attr">"keyfile"</span>: <span class="string">"privkey.pem"</span>,</span><br><span class="line">  <span class="attr">"allowed_networks"</span>: [</span><br><span class="line">    <span class="string">"192.168.0.0/16"</span>,</span><br><span class="line">    <span class="string">"172.30.0.0/16"</span></span><br><span class="line">  ],</span><br><span class="line">  <span class="attr">"banned_ips"</span>: [</span><br><span class="line">    <span class="string">"8.8.8.8"</span></span><br><span class="line">  ],</span><br><span class="line">  <span class="attr">"banlimit"</span>: <span class="number">0</span>,</span><br><span class="line">  <span class="attr">"ignore_pattern"</span>: [</span><br><span class="line">    <span class="string">"__pycache__"</span></span><br><span class="line">  ],</span><br><span class="line">  <span class="attr">"dirsfirst"</span>: <span class="literal">false</span>,</span><br><span class="line">  <span class="attr">"enforce_basepath"</span>: <span class="literal">false</span>,</span><br><span class="line">  <span class="attr">"notify_service"</span>: <span class="string">"persistent_notification.create"</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>你也可以使用winscp连接ssh直接编辑文件，但使用 Configurator 会帮你纠错</p><h4 id="custom-ui"><a href="#custom-ui" class="headerlink" title="custom-ui"></a>custom-ui</h4><p><a href="https://bbs.hassbian.com/thread-3975-1-4.html" target="_blank" rel="noopener">https://bbs.hassbian.com/thread-3975-1-4.html</a></p><h4 id="开启MQTT"><a href="#开启MQTT" class="headerlink" title="开启MQTT"></a>开启MQTT</h4><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">mqtt:</span></span><br><span class="line"><span class="attr">  password:</span> <span class="string">mqttPassWord</span></span><br></pre></td></tr></table></figure><p>默认值</p><table><thead><tr><th>Setting</th><th>Value</th></tr></thead><tbody><tr><td>Port</td><td>1883</td></tr><tr><td>User</td><td>homeassistant</td></tr><tr><td>Websocket port</td><td>8080</td></tr></tbody></table><h4 id="接入homekit"><a href="#接入homekit" class="headerlink" title="接入homekit"></a>接入homekit</h4><p>在 configuration 文件里添加</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">homekit:</span><br></pre></td></tr></table></figure><p>如果之前激活过，需要删掉config文件夹下的 .homekit.state 文件 然后重启</p><h4 id="斐讯设备"><a href="#斐讯设备" class="headerlink" title="斐讯设备"></a>斐讯设备</h4><h4 id="小米设备"><a href="#小米设备" class="headerlink" title="小米设备"></a>小米设备</h4><h4 id="博联设备"><a href="#博联设备" class="headerlink" title="博联设备"></a>博联设备</h4><h4 id="ESP8266"><a href="#ESP8266" class="headerlink" title="ESP8266"></a>ESP8266</h4><p>ESP_Easy_0</p><p>192.168.4.1</p><p>烧录固件时把io0接到GND</p><p>不接RXD TXD 可运行</p><p><strong>MQTT的配置</strong></p><p>Devices -&gt; Send to Controller</p><p>Tools -&gt; Advanced -&gt; 勾上 MQTT Retain Msg</p><p>Controller -&gt; Edit -&gt; 填入MQTT 的 IP ，端口一般为1883, Controller User为homeassistant(hassio默认) 密码是在配置文件中配置的，Controller Subscribe 默认，Controller Publish 改第一个变量 如 /Lux/%tskname%/%valname%</p><p>Enabled 勾上</p><p>然后到 hassio 的 configuration 文件中配置</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">sensor</span> <span class="number">3</span><span class="string">:</span></span><br><span class="line"><span class="attr">  - platform:</span> <span class="string">mqtt</span></span><br><span class="line"><span class="attr">    name:</span> <span class="string">"Lux"</span> <span class="comment"># 随便起，但中文不行</span></span><br><span class="line"><span class="attr">    state_topic:</span> <span class="string">"/Lux/2561/Lux"</span> <span class="comment"># /你在esp8266 controller 中配置的/devices中的name/devices 中的Values 单位</span></span><br><span class="line"><span class="attr">    qos:</span> <span class="number">0</span></span><br><span class="line"><span class="attr">    retain:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">    unit_of_measurement:</span> <span class="string">"lux"</span> <span class="comment"># 单位</span></span><br></pre></td></tr></table></figure><h4 id="Node-RED"><a href="#Node-RED" class="headerlink" title="Node RED"></a>Node RED</h4><p>添加插件源 <a href="https://github.com/notoriousbdg/hassio-addons" target="_blank" rel="noopener">https://github.com/notoriousbdg/hassio-addons</a> </p><hr><h4 id="资料参考"><a href="#资料参考" class="headerlink" title="资料参考"></a>资料参考</h4><p>hass.io 官网 <a href="https://www.home-assistant.io" target="_blank" rel="noopener">https://www.home-assistant.io</a></p><p>hass.io 组件一览表 <a href="https://www.home-assistant.io/components/" target="_blank" rel="noopener">https://www.home-assistant.io/components/</a></p><p>HassBan论坛 <a href="https://bbs.hassbian.com/forum.php" target="_blank" rel="noopener">https://bbs.hassbian.com/forum.php</a></p><p>ESP EASY 官网 <a href="https://www.letscontrolit.com/" target="_blank" rel="noopener">https://www.letscontrolit.com/</a>    </p><p>ESP EASY wiki <a href="https://www.letscontrolit.com/wiki/index.php/Main_Page" target="_blank" rel="noopener">https://www.letscontrolit.com/wiki/index.php/Main_Page</a></p><p>安可信官网 <a href="http://en.ai-thinker.com/" target="_blank" rel="noopener">http://en.ai-thinker.com/</a></p><p>ESP8266文档 <a href="http://en.ai-thinker.com/esp8266/docs" target="_blank" rel="noopener">http://en.ai-thinker.com/esp8266/docs</a></p><h4 id="软件下载"><a href="#软件下载" class="headerlink" title="软件下载"></a>软件下载</h4><p>安信可串口调试助手 <a href="http://en.ai-thinker.com/_media/tools/aithinker_serial_tool_v1.2.3.7z" target="_blank" rel="noopener">http://en.ai-thinker.com/_media/tools/aithinker_serial_tool_v1.2.3.7z</a></p><h4 id="物料列表"><a href="#物料列表" class="headerlink" title="物料列表"></a>物料列表</h4><p>树莓派3B+</p><p>32G TF卡</p><p>ESP8266 芯片 ESP01</p><p>ESP8266 芯片 ESP V3</p><p>面包板</p><p>杜邦线</p><p>TTL</p><p>光敏传感器</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h1 id=&quot;树莓派安装-hass-io-折腾记&quot;&gt;&lt;a href=&quot;#树莓派安装-hass-io-折腾记&quot; class=&quot;headerlink&quot; title=&quot;树莓派安装 hass.io 折腾记&quot;&gt;&lt;/a&gt;树莓派安装 hass.io 折腾记&lt;/h1&gt;&lt;h4 id=&quot;下载烧录&quot;
      
    
    </summary>
    
    
      <category term="hassio" scheme="http://bigma.cc/tags/hassio/"/>
    
      <category term="物联网" scheme="http://bigma.cc/tags/%E7%89%A9%E8%81%94%E7%BD%91/"/>
    
  </entry>
  
  <entry>
    <title>windows调试IOS页面工具</title>
    <link href="http://bigma.cc/2019/03/02/page/"/>
    <id>http://bigma.cc/2019/03/02/page/</id>
    <published>2019-03-02T15:10:21.000Z</published>
    <updated>2023-09-06T14:03:24.663Z</updated>
    
    <content type="html"><![CDATA[<h4 id="安装Scoop"><a href="#安装Scoop" class="headerlink" title="安装Scoop"></a>安装Scoop</h4><p>环境win10 命令行工具 Power Shell</p><p><code>iex (new-object net.webclient).downloadstring(&#39;https://get.scoop.sh&#39;)</code></p><p>如果以上命令出错可能需要改变组策略 执行以下命令<br><code>Set-ExecutionPolicy RemoteSigned -scope CurrentUser</code><br><img src="/images/20190302001.jpg" alt="628e76ae5016da498088e1a638b59279.jpeg"></p><h4 id="安装-ios-webkit-debug-proxy"><a href="#安装-ios-webkit-debug-proxy" class="headerlink" title="安装 ios-webkit-debug-proxy"></a>安装 ios-webkit-debug-proxy</h4><p>项目git <code>https://github.com/google/ios-webkit-debug-proxy</code></p><blockquote><p>如果 ping github.com 超时<br>去以下网址查询github.com 和 github.global.ssl.fastly.net 的IP<br><a href="https://www.ipaddress.com/" target="_blank" rel="noopener">https://www.ipaddress.com/</a></p><p>然后在hosts里添加<br>192.30.253.112 github.com<br>151.101.185.194 github.global.ssl.fastly.net<br>执行 ipconfig /flushdns 刷新缓存</p></blockquote><p><code>scoop bucket add extras</code><br><code>scoop install ios-webkit-debug-proxy</code></p><h4 id="启动代理"><a href="#启动代理" class="headerlink" title="启动代理"></a>启动代理</h4><p><code>ios_webkit_debug_proxy</code><br>会提示<br>Listing devices on :9221</p><p>ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html<br>Listing devices on :9221</p><p>使用chrome 打开<br><a href="http://localhost:9222/" target="_blank" rel="noopener">http://localhost:9222/</a></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h4 id=&quot;安装Scoop&quot;&gt;&lt;a href=&quot;#安装Scoop&quot; class=&quot;headerlink&quot; title=&quot;安装Scoop&quot;&gt;&lt;/a&gt;安装Scoop&lt;/h4&gt;&lt;p&gt;环境win10 命令行工具 Power Shell&lt;/p&gt;
&lt;p&gt;&lt;code&gt;iex (new-ob
      
    
    </summary>
    
    
      <category term="debug" scheme="http://bigma.cc/tags/debug/"/>
    
      <category term="ios" scheme="http://bigma.cc/tags/ios/"/>
    
  </entry>
  
  <entry>
    <title>iis导出导入站点的方法</title>
    <link href="http://bigma.cc/2018/09/03/iis%E5%AF%BC%E5%87%BA%E5%AF%BC%E5%85%A5%E7%AB%99%E7%82%B9/"/>
    <id>http://bigma.cc/2018/09/03/iis导出导入站点/</id>
    <published>2018-09-03T14:25:10.000Z</published>
    <updated>2023-09-06T14:03:24.662Z</updated>
    
    <content type="html"><![CDATA[<p>公司的前端开发需要配置很多的iis站点，还要配置站点的各种虚拟路径，要是换电脑就悲剧了。所以找到了，导出导入站点的办法，减少工作量。<br><a id="more"></a><br>使用系统管理员运行cmd</p><h4 id="应用池"><a href="#应用池" class="headerlink" title="应用池"></a>应用池</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 导出处所有应用池</span></span><br><span class="line">%windir%\system32\inetsrv\appcmd list apppool /config /xml &gt; c:\apppools.xml</span><br></pre></td></tr></table></figure><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 导入处所有应用池</span></span><br><span class="line">%windir%\system32\inetsrv\appcmd add apppool /<span class="keyword">in</span> &lt; c:\apppools.xml</span><br></pre></td></tr></table></figure><blockquote><p>这里要注意如果有重名的应用池就会导入失败，所以导入前要先删掉 默认的应用池 比如 DefaultAppPool</p></blockquote><h4 id="站点"><a href="#站点" class="headerlink" title="站点"></a>站点</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 导出处所有站点</span></span><br><span class="line">%windir%\system32\inetsrv\appcmd list site /config /xml &gt; c:\sites.xml</span><br></pre></td></tr></table></figure><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 导入处所有站点</span></span><br><span class="line">%windir%\system32\inetsrv\appcmd add site /<span class="keyword">in</span> &lt; c:\sites.xml</span><br></pre></td></tr></table></figure><blockquote><p>同样要删掉重名的站点 比如 Default Website</p></blockquote><h4 id="单独导入导出"><a href="#单独导入导出" class="headerlink" title="单独导入导出"></a>单独导入导出</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 导出单独应用程序池:</span></span><br><span class="line">%windir%\system32\inetsrv\appcmd list apppool “应用程序池名称” /config /xml &gt; c:\myapppool.xml</span><br><span class="line"></span><br><span class="line"><span class="comment"># 导入单独应用程序池:</span></span><br><span class="line">%windir%\system32\inetsrv\appcmd add apppool /<span class="keyword">in</span> &lt; c:\myapppool.xml</span><br><span class="line"> </span><br><span class="line"><span class="comment"># 导出单独站点:</span></span><br><span class="line">%windir%\system32\inetsrv\appcmd list site “站点名称” /config /xml &gt; c:\mywebsite.xml </span><br><span class="line"></span><br><span class="line"><span class="comment"># 导入单独站点:</span></span><br><span class="line">%windir%\system32\inetsrv\appcmd add site /<span class="keyword">in</span> &lt; c:\mywebsite.xml</span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;公司的前端开发需要配置很多的iis站点，还要配置站点的各种虚拟路径，要是换电脑就悲剧了。所以找到了，导出导入站点的办法，减少工作量。&lt;br&gt;
    
    </summary>
    
    
      <category term="iis" scheme="http://bigma.cc/tags/iis/"/>
    
  </entry>
  
  <entry>
    <title>openwrt 下 dnsmasq 的配置</title>
    <link href="http://bigma.cc/2018/08/22/dnsmasq/"/>
    <id>http://bigma.cc/2018/08/22/dnsmasq/</id>
    <published>2018-08-22T14:55:15.000Z</published>
    <updated>2023-09-06T14:03:24.661Z</updated>
    
    <content type="html"><![CDATA[<p>dnsmasq 可以在局域网内 对网址映射到ip 类似于本地电脑的host<br><a id="more"></a></p><h4 id="打开-openwrt-上dnsmasq配置文件"><a href="#打开-openwrt-上dnsmasq配置文件" class="headerlink" title="打开 openwrt 上dnsmasq配置文件"></a>打开 openwrt 上dnsmasq配置文件</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vi /etc/config/dhcp</span><br></pre></td></tr></table></figure><h4 id="在-config-dnsmasq-下添加"><a href="#在-config-dnsmasq-下添加" class="headerlink" title="在 config dnsmasq  下添加"></a>在 config dnsmasq  下添加</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">list address &apos;clients1.google.com/clients2.google.com/203.79.253.17&apos;</span><br></pre></td></tr></table></figure><p><code>clients1.google.com/clients2.google.com</code>为域名，可以设置多个，使用‘/’分隔，最后一段是ip</p><h4 id="重启使之生效"><a href="#重启使之生效" class="headerlink" title="重启使之生效"></a>重启使之生效</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/etc/init.d/dnsmasq restart</span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;dnsmasq 可以在局域网内 对网址映射到ip 类似于本地电脑的host&lt;br&gt;
    
    </summary>
    
    
      <category term="openwrt" scheme="http://bigma.cc/tags/openwrt/"/>
    
      <category term="dnsmasq" scheme="http://bigma.cc/tags/dnsmasq/"/>
    
  </entry>
  
  <entry>
    <title>@media 媒体查询分辨率收集及使用说明</title>
    <link href="http://bigma.cc/2018/07/18/media-%E5%AA%92%E4%BD%93%E6%9F%A5%E8%AF%A2%E5%88%86%E8%BE%A8%E7%8E%87%E6%94%B6%E9%9B%86%E5%8F%8A%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/"/>
    <id>http://bigma.cc/2018/07/18/media-媒体查询分辨率收集及使用说明/</id>
    <published>2018-07-18T14:59:18.000Z</published>
    <updated>2023-09-06T14:03:24.663Z</updated>
    
    <content type="html"><![CDATA[<p>收集的一些响应式网页媒体查询的分辨率<br><a id="more"></a></p><h2 id="苹果官网"><a href="#苹果官网" class="headerlink" title="苹果官网"></a>苹果官网</h2><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">@<span class="keyword">media</span> only screen and (max-width: <span class="number">1044px</span>) &#123;</span><br><span class="line">    <span class="selector-id">#ac-globalnav</span> &#123;</span><br><span class="line">        <span class="attribute">min-width</span>:<span class="number">320px</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">@<span class="keyword">media</span> only screen and (max-width: <span class="number">1023px</span>) &#123;</span><br><span class="line">    <span class="selector-id">#ac-gn-segmentbar</span> &#123;</span><br><span class="line">        <span class="attribute">min-width</span>:<span class="number">320px</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">@<span class="keyword">media</span> only screen and (max-width: <span class="number">767px</span>) &#123;</span><br><span class="line">    <span class="selector-id">#ac-globalnav</span> <span class="selector-class">.ac-gn-searchresults-list</span> &#123;</span><br><span class="line">        <span class="attribute">padding</span>:<span class="number">3px</span> <span class="number">30px</span> <span class="number">0</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">@<span class="keyword">media</span> only screen and (max-width: <span class="number">419px</span>) &#123;</span><br><span class="line">    <span class="selector-id">#ac-globalnav</span> <span class="selector-class">.ac-gn-searchresults-list</span> &#123;</span><br><span class="line">        <span class="attribute">padding</span>:<span class="number">4px</span> <span class="number">0</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="微软官网"><a href="#微软官网" class="headerlink" title="微软官网"></a>微软官网</h2><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line">@<span class="keyword">media</span> (min-width:<span class="number">1779px</span>) &#123;</span><br><span class="line">    <span class="selector-tag">html</span> <span class="selector-tag">img</span><span class="selector-class">.vp6</span> &#123;</span><br><span class="line">        <span class="attribute">display</span>:block;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">@<span class="keyword">media</span> (min-width:<span class="number">1400px</span>) and (max-width:<span class="number">1778px</span>) &#123;</span><br><span class="line">    <span class="selector-tag">html</span> <span class="selector-tag">img</span><span class="selector-class">.vp5</span> &#123;</span><br><span class="line">        <span class="attribute">display</span>:block;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">@<span class="keyword">media</span> (min-width:<span class="number">1084px</span>) and (max-width:<span class="number">1399px</span>) &#123;</span><br><span class="line">    <span class="selector-tag">html</span> <span class="selector-tag">img</span><span class="selector-class">.vp4</span> &#123;</span><br><span class="line">        <span class="attribute">display</span>:block;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">@<span class="keyword">media</span> (min-width:<span class="number">768px</span>) and (max-width:<span class="number">1083px</span>) &#123;</span><br><span class="line">    <span class="selector-tag">html</span> <span class="selector-tag">img</span><span class="selector-class">.vp3</span> &#123;</span><br><span class="line">        <span class="attribute">display</span>:block;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">@<span class="keyword">media</span> (min-width:<span class="number">540px</span>) and (max-width:<span class="number">767px</span>) &#123;</span><br><span class="line">    <span class="selector-tag">html</span> <span class="selector-tag">img</span><span class="selector-class">.vp2</span> &#123;</span><br><span class="line">        <span class="attribute">display</span>:block;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">@<span class="keyword">media</span> (max-width:<span class="number">539px</span>) &#123;</span><br><span class="line">    <span class="selector-tag">html</span> <span class="selector-tag">img</span><span class="selector-class">.vp1</span> &#123;</span><br><span class="line">        <span class="attribute">display</span>:block;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="media-使用说明"><a href="#media-使用说明" class="headerlink" title="@media 使用说明"></a>@media 使用说明</h2><h4 id="设置meta"><a href="#设置meta" class="headerlink" title="设置meta"></a>设置meta</h4><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">meta</span> <span class="attr">name</span>=<span class="string">"viewport"</span> <span class="attr">content</span>=<span class="string">"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span>&gt;</span></span><br></pre></td></tr></table></figure><ul><li>width = device-width：宽度等于当前设备的宽度</li><li>initial-scale：初始的缩放比例（默认设置为1.0）</li><li>minimum-scale：允许用户缩放到的最小比例（默认设置为1.0）</li><li>maximum-scale：允许用户缩放到的最大比例（默认设置为1.0）</li><li>user-scalable：用户是否可以手动缩放（默认设置为no，因为我们不希望用户放大缩小页面）<h4 id="加载兼容JS"><a href="#加载兼容JS" class="headerlink" title="加载兼容JS"></a>加载兼容JS</h4>IE8既不支持HTML5也不支持CSS3 Media，所以我们需要加载两个JS文件，来保证我们的代码实现兼容效果：<figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">&lt;!--[if lt IE 9]&gt;</span></span><br><span class="line"><span class="comment">&lt;script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"&gt;&lt;/script&gt;</span></span><br><span class="line"><span class="comment">&lt;script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"&gt;&lt;/script&gt;</span></span><br><span class="line"><span class="comment">&lt;![endif]--&gt;</span></span><br></pre></td></tr></table></figure></li></ul><h4 id="设置IE渲染方式默认为Edge"><a href="#设置IE渲染方式默认为Edge" class="headerlink" title="设置IE渲染方式默认为Edge"></a>设置IE渲染方式默认为Edge</h4><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">meta</span> <span class="attr">http-equiv</span>=<span class="string">"X-UA-Compatible"</span> <span class="attr">content</span>=<span class="string">"IE=edge"</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="除了在-media-规则中使用外，媒体查询也可应用于HTML标签以将样式表的应用限于某个特定媒体。"><a href="#除了在-media-规则中使用外，媒体查询也可应用于HTML标签以将样式表的应用限于某个特定媒体。" class="headerlink" title="除了在@media 规则中使用外，媒体查询也可应用于HTML标签以将样式表的应用限于某个特定媒体。"></a>除了在@media 规则中使用外，媒体查询也可应用于HTML标签<link>以将样式表的应用限于某个特定媒体。</h2><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">"stylesheet"</span> <span class="attr">media</span>=<span class="string">"screen and (min-width: 900px)"</span> <span class="attr">href</span>=<span class="string">"widescreen-styles.css"</span> /&gt;</span></span><br></pre></td></tr></table></figure><h2 id="基本语法"><a href="#基本语法" class="headerlink" title="基本语法"></a>基本语法</h2><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">@<span class="keyword">media</span> mediatype and|not|only (media feature) &#123;</span><br><span class="line">    <span class="selector-tag">CSS-Code</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="媒体类型-mediatype"><a href="#媒体类型-mediatype" class="headerlink" title="媒体类型 mediatype"></a>媒体类型 mediatype</h2><ul><li>all<br>适用于所有设备。</li><li>print<br>为了加载合适的文档到当前使用的可视窗口. 需要提前咨询 paged media（媒体屏幕尺寸）, 以满足个别设备网页尺寸不匹配等问题。</li><li>screen<br>主要适用于彩色的电脑屏幕</li><li>speech<br>解析speech这个合成器. </li></ul><h2 id="媒体查询包括四种逻辑运算符-and-not-only"><a href="#媒体查询包括四种逻辑运算符-and-not-only" class="headerlink" title="媒体查询包括四种逻辑运算符  and|not|only"></a>媒体查询包括四种逻辑运算符  and|not|only</h2><ul><li>and </li></ul><figure class="highlight plain"><figcaption><span>(min-width: 700px) and (orientation: landscape) &#123; ... &#125;```</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">- 逗号分隔(or)</span><br><span class="line"></span><br><span class="line">```@media (min-width: 700px), handheld and (orientation: landscape) &#123; ... &#125;</span><br></pre></td></tr></table></figure><ul><li>not <i>not 对整句查询起效</i></li></ul><figure class="highlight plain"><figcaption><span>not all and (monochrome) &#123; ... &#125;```</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">等价于</span><br><span class="line"></span><br><span class="line">```@media not (all and (monochrome)) &#123; ... &#125;</span><br></pre></td></tr></table></figure><p>而不是</p><figure class="highlight plain"><figcaption><span>(not all) and (monochrome) &#123; ... &#125;```</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">- only</span><br><span class="line"></span><br><span class="line">```@media only (min-width: 300px) &#123; ... &#125;</span><br></pre></td></tr></table></figure><h2 id="可用的其他参数-media-feature"><a href="#可用的其他参数-media-feature" class="headerlink" title="可用的其他参数 media feature"></a>可用的其他参数 media feature</h2><ul><li>width:浏览器可视宽度。</li><li>height:浏览器可视高度。</li><li>device-width:设备屏幕的宽度。</li><li>device-height:设备屏幕的高度。</li><li>orientation:检测设备目前处于横向还是纵向状态。</li><li>aspect-ratio:检测浏览器可视宽度和高度的比例。(例如：aspect-ratio:16/9)</li><li>device-aspect-ratio:检测设备的宽度和高度的比例。</li><li>color:检测颜色的位数。</li><li>color-index:检查设备颜色索引表中的颜色，他的值不能是负数。</li><li>monochrome:检测单色楨缓冲区域中的每个像素的位数。</li><li>resolution:检测屏幕或打印机的分辨率。</li><li>grid：检测输出的设备是网格的还是位图设备。</li></ul><h2 id="常用的分辨率"><a href="#常用的分辨率" class="headerlink" title="常用的分辨率"></a>常用的分辨率</h2><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* 大屏幕 */</span></span><br><span class="line">@<span class="keyword">media</span> (min-width: <span class="number">1200px</span>) &#123; ... &#125;</span><br><span class="line"> </span><br><span class="line"><span class="comment">/* 平板电脑和小屏电脑之间的分辨率 */</span></span><br><span class="line">@<span class="keyword">media</span> (min-width: <span class="number">768px</span>) and (max-width: <span class="number">979px</span>) &#123; ... &#125;</span><br><span class="line"> </span><br><span class="line"><span class="comment">/* 横向放置的手机和竖向放置的平板之间的分辨率 */</span></span><br><span class="line">@<span class="keyword">media</span> (max-width: <span class="number">767px</span>) &#123; ... &#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* 横向放置的手机及分辨率更小的设备 */</span></span><br><span class="line">@<span class="keyword">media</span> (max-width: <span class="number">480px</span>) &#123; ... &#125;</span><br></pre></td></tr></table></figure><ul><li>笔记本 1440px</li><li>小尺寸笔记本 1280px</li><li>iPad Pro 1024px</li><li>iPad 768px</li><li>iPhone6/7/8 414px </li></ul><h2 id="使用示例"><a href="#使用示例" class="headerlink" title="使用示例"></a>使用示例</h2><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/*当页面宽度小于 960px 的时候执行包裹的css*/</span></span><br><span class="line">@<span class="keyword">media</span> screen and (max-width: <span class="number">960px</span>)&#123;</span><br><span class="line">    <span class="selector-tag">body</span>&#123;</span><br><span class="line">        <span class="attribute">background</span>: <span class="number">#000</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/*当页面宽度大于 960px 的时候执行包裹的css*/</span></span><br><span class="line">@<span class="keyword">media</span> screen and (min-width:<span class="number">960px</span>)&#123;</span><br><span class="line">    <span class="selector-tag">body</span>&#123;</span><br><span class="line">        <span class="attribute">background</span>:red;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment">/*当设备的最大宽度等于 960px 的时候执行包裹的css*/</span></span><br><span class="line">@<span class="keyword">media</span> screen and (max-device-width:<span class="number">960px</span>)&#123;</span><br><span class="line">    <span class="selector-tag">body</span>&#123;</span><br><span class="line">        <span class="attribute">background</span>:red;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment">/*当页面宽度大于 960px 且小于 1440px 的时候执行包裹的css*/</span></span><br><span class="line">@<span class="keyword">media</span> screen and (min-width:<span class="number">960px</span>) and (max-width:<span class="number">1440px</span>)&#123;</span><br><span class="line">    <span class="selector-tag">body</span>&#123;</span><br><span class="line">        <span class="attribute">background</span>:red;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* 浏览器支持flex 且 页面宽度大于 900px 的时候执行包裹的css  */</span></span><br><span class="line">@<span class="keyword">supports</span> (display: flex) &#123;</span><br><span class="line">  @<span class="keyword">media</span> screen and (min-width: <span class="number">900px</span>) &#123;</span><br><span class="line">    <span class="selector-tag">article</span> &#123;</span><br><span class="line">      <span class="attribute">display</span>: flex;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="一些链接"><a href="#一些链接" class="headerlink" title="一些链接"></a>一些链接</h2><p>@media说明</p><blockquote><p><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@media" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/CSS/@media</a></p></blockquote><p>@media示例</p><blockquote><p><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries</a></p></blockquote><p>设备分辨率查询网址</p><blockquote><p><a href="http://viewportsizes.mattstow.com/" target="_blank" rel="noopener">http://viewportsizes.mattstow.com/</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;收集的一些响应式网页媒体查询的分辨率&lt;br&gt;
    
    </summary>
    
    
      <category term="media" scheme="http://bigma.cc/tags/media/"/>
    
      <category term="媒体查询" scheme="http://bigma.cc/tags/%E5%AA%92%E4%BD%93%E6%9F%A5%E8%AF%A2/"/>
    
      <category term="分辨率" scheme="http://bigma.cc/tags/%E5%88%86%E8%BE%A8%E7%8E%87/"/>
    
      <category term="css" scheme="http://bigma.cc/tags/css/"/>
    
  </entry>
  
</feed>
