解决hexo引入图床,手机和web不显示图片的问题
hexo引入的方式有很多种:
Hexo使用图床的方式加载在blog中加载,会在非本人的电脑或者手机端报“html访问资源403问题(http referrer)”,导致采用图床方式加载的全部无法加载。
http请求体的header中有一个referrer字段,用来表示发起http请求的源地址信息,这个referrer信息是可以省略但是不可修改的,就是说你只能设置是否带上这个referrer信息,不能定制referrer里面的值。
服务器端在拿到这个referrer值后就可以进行相关的处理,比如资源,可以通过referrer值判断请求是否来自本站,若不是则返回403或者重定向返回其他信息,从而实现的防盗链。上面出现403就是因为,请求的是别人服务器上的资源,但把自己的referrer信息带过去了,被对方服务器拦截返回了403。
在前端可以通过meta来设置referrer policy(来源策略),具体可以设置哪些值以及对应的结果参考 这里 。所以针对上面的403情况的解决方法,就是把referrer设置成 no-referrer ,这样发送请求不会带上referrer信息,对方服务器也就无法拦截了。
浏览器中referrer默认的值是 no-referrer-when-downgrade ,就是除了降级请求的情况以外都会带上referrer信息。降级请求是指https协议的地址去请求http协议,所以上面403的情况还有另一种解决方法就是,请求的地址换成http协议,自己的地址使用http协议,这样降级请求也不会带上referrer。
在G:\blog\themes\butterfly\layout\includes目录下有一个headpug文件,修改该文件的meta信息,会使生成的所有页面都带有该head。在headpug文件中添加如下内容,结果参见。
在G:\blog\themes\yilia\layout_partial目录下有一个headejs,同样在headejs文件中添加如下meta信息即可
在G:\blog\public\2021目录下就是所有21年生成的blog,找到该目录下的任意一个indexhtml,用文本编辑器打开就可以看到已经自动生成了referrer标签了。
然后使用hexo d指令将工程同步到github即可
1 加载本地的方法
2 html访问资源403问题(http referrer)
将照片专为二进制。将转为url可通过将照片专为二进制。URL是UniformResourceLocation的缩写,译为“统一资源定位符”。通俗地说,URL是Internet上用来描述信息资源的字符串。
买了云服务器后,打算来折腾一下服务器。服务器都有哪些用途?
建网站、博客。就是这篇文章所说的内容。为甚么要自己建立博客?因为博客在自己手上总是比较踏实。像社交网站兴衰交替,以前写的心得体会在旧的社交网站上都找不到了,而且自己博客限制也没那么大。
具体建站过程可以看我写的文章 阿里云服务器快速建网站_安装BT宝塔面板和wordpress
云服务器(Elastic Compute Service,简称ECS)根据其官网介绍是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。
ECS即类似于国外的VPS。(不要好奇那么多人买国外VPS干嘛用)。架设个人博客网站、企业门户都可以使用ECS。如果其网站如个人博客主要面向国内用户访问,为加快速度还是建议选用国内的服务器商。
[阿里云域名] ( https://wanwangaliyuncom/domain/com/userCode=yos4xyvp )连接,
[阿里云服务器ECS] ( https://wwwaliyuncom/minisite/goodsuserCode=yos4xyvp ) 链接
以下操作建议电脑端进行。
点击[阿里云官网链接] ( https://wwwaliyuncom/userCode=yos4xyvp ),点击免费注册链接。跳出页面选择账号密码注册,输入手机号,注册阿里云账号。注册之后,需要进行邮箱安全认证。
重新登录,管理台布局模式选择“个人开发者”,进入管理台界面。
在搜索栏搜索域名,进入“域名控制台”。点击下面 “域名注册”链接 。进入阿里云万网页面。
搜索栏直接搜索想要注册的域名,如 jiudangwoshicedancom,选择“加入清单”。下面还有不同的套餐,看个人需要。点击右边清单结算按钮,跳出“确认订单”页面。
“确认订单”页面需要“创建信息模板”。
点击“创建信息模板”链接进入该页面,输入邮箱、手机、地址等。确认之后,还需邮箱验证。
验证完毕之后,重新刷新一下“确认订单”页面,选择域名持有者为“个人”。
“优惠口令”:通过关注阿里云域名微信公众号,在公众号中回复“优惠口令”获取。
全部勾选,点击提交。付款之后域名注册完成。
在此吐槽一下用手机阿里云app注册域名各种bug:
最开始是常使用手机app进行域名注册的。折腾了大半个小时没搞定。
为方便操作,不建议使用阿里云手机app作为新手注册,除非已经进行了邮箱认证和身份证实名认证。在手机app中顶部搜索栏搜索域名,第一个跳出域名注册链接。
注意,域名备案需准备服务器(有IP那种) ,所以得先购买云服务器ECS。点击[阿里云服务器ECS] ( https://wwwaliyuncom/product/ecsspm=517613735996muuje2t9u153a13b5aPAV4Xh&aly_as=sqns2HDgL&userCode=yos4xyvp )链接,进入ECS页面,点击“立即购买”按钮,进入ECS购买页面。
在ECS购买页面,如果新手或者嫌麻烦可以选择“一键购买”标签。
最后点击“确认订单”进行购买。
跳出“确认订单”页面,勾选“服务协议”,点击“确认下单”。进行支付。
支付完成即OK,ECS购买完成。
域名备案需要有域名、服务器。其流程如下所示。
点击 网站备案 链接,点击页面右边“开始备案”按钮,跳出“开始备案”页面。
填入“主办单位所属区域”,“主办单位性质”选择“个人”,填入身份证号码和域名。点击最后“验证备案类型”。进入“产品验证”页面。
“产品类型”选择ECS,“选择实例”里会自动选择自己购买的云服务器“实例名称”。最后点击“验证”按钮。
后面就是提交身份证正反面、人脸识别。后面就等着阿里云客服初审,初审会电话联系进行提交资料的修改等帮助。修改完毕之后就提交备案审核机构。等待十来天不等就通过备案审查,会收到域名备案信息短信和邮件提醒。
点击 阿里云终端控制台链接 登录
点击实例ID里的链接
点击“远程连接”旁边“更多”下拉箭头的”重置实例密码“。
跳出”重置密码“页面,输入新的密码,这个是网页和远程SSH登录ECS的密码。
最终显示登录成功界面。
另外,如果觉得网页不习惯的话,也可以SSH远程登录。
图床,可以参考我此前写的文章 七牛图床添加阿里云域名 、 阿里云域名注册与备案、服务器ECS购买与登录 、 markdown多平台发布及七牛图床使用
因为使用Markdown作为日常文章记录,markdown挺方便的,就是对引用不太方便,一直使用本地引用。
当要将一些文章发布到知乎、个人博客、还有微信公众号的时候,就缺失了,需要手动重新上传。当比较多,发布平台也比较多时候,就觉得本地引用不合适。
针对这个问题,解决方法就是使用图床,在文章里引用是图床连接。
针对无网络情形下,则用本地替换,typora这个编辑器提供这个选项。
根据对网上的搜索和本人使用对比,推荐使用七牛作为图床,并配合Mpic图床神器使用方便粘贴图床连接。
1通过网上搜索,有建议通过base64进行转换的,转换成一大坨base64文本插入,markdown编辑器都有些卡死了。这个base64方式就直接pass了。
2还有推荐github作为图床的,一是这个由于众所周知的原因需要加速器,否则比较慢;二是上传之后,直接复制github里repository链接并不能直接显示,需要点击download,生成rawgithubusercontentcom/XX的连接,需要等一段时间,这段时间可长可短,反正我等了10分钟还没生成;三是没有上传神器,需要手动复制链接。这个也太麻烦了。如下图就是用github作为图床的,不知道大家刷出来了么?
七牛官方注册为 https://portalqiniucom/signupcode=1h51ixa3vs4lu ,通过个人认证后提供10G存储空间,足够博客等使用了。
这个注册过程过程如下
1填入邮箱和手机号,注册后需要验证邮箱,同时通过个人认证
图床神器是配合桌面使用,方便将上传至七牛云空间,并且自动生成链接插入markdown文件中。
填入的域名在这里找到
推荐使用微信公众号格式化工具,网址是 http://blogdidispacecom/tools/online-markdown/
通过在网页左边粘贴markdown语言,右边即可生成公众号适用的素材,通过复制按钮即可粘贴至公众号发布页。
通过粘贴markdown直接生成
推荐选用Typora作为markdown编辑器。
作者的其他回答:
阿里云域名注册与备案、服务器ECS购买与登录 、
七牛图床添加阿里云域名 、
不可以。因为你做了后,在其他网站引用QQ空间的时,无法正常显示,而是现实“您所查看的来自QQZONE,您无权查看”。所以,您可以使用其他的免图床。比如,谷景互联的。Baidu下。
虽然有imgur、imgbox等免费图床,以及skydrive、新浪微博等可以做图床的网络存储,而且这些服务稳定性还不错。但是依然不能让人100%放心。原因如下:
服务关闭或修改政策。连Google Reader都会被关闭,还有什么不会的呢?若是在未通知用户情况下突然关闭,那对用户造成的损失将会巨大的。
网站被墙。天灾人祸导致图床服务器损坏,还有可能回复,而一旦被墙,就是不可抗拒的。
被删除。就算是合法的文件,也不能保证图床服务商因为某种政策原因删除你的。
如果图床出了问题,即使你保存了,更换文章中的url也是个复杂的工程。所以,搭建自己的图床是个不错的选择,当然在专业的图床供应商处购买付费服务也是不错的选择。搭建自己的图床,使用自己的域名,即使空间出了问题,还是可以迁移的,因为引用的只是的url。鉴于Wordpress自带不错的管理功能,本文更适合空间、流量有限,并担心免费服务稳定性的人。
图床神器不能用是因加了防盗链。Gitee本身就只是一个代码托管服务器,从来没有说过可以做为图床使用,Gitee服务端加了防盗链措施,对请求校验了referer头信息,请求来自白名单的域名就放行,返回了正常的信息。是非白名单的域名或者没有referer参数发起的请求,就不响应或者重定向到一张错误的。
0条评论