但是好在我会搜索,找到了一个 Chevereto 工具,能够方便在服务器上搭建图床,于是我就花了1个小时时间探索了一下,效果如下。
我的环境为
下面的 *** 作涉及docker,需要在root权限下执行如下 *** 作。
第一步:安装docker和compose(容器的编排工具)
第二步:获取mariadb和nmtan/chevereto镜像
第三步:使用Docker-compose启动服务。
在docker-compose.yaml 增加如下内容
编辑配置文件之后,就能方便的启动服务
输入你的公网IP和配置文件中的端口号,检查是否安装成功
如果遇到如上界面,说明成功的搭建了图床服务,但仍需要填写一些信息。之后登录之后就可以在这里进行上传图片
但是这种情况下,游客模式下也是能查看你的所有图片,那有没有办法只让自己查看自己的上传图片呢?
我们可以进入dashboard修改如下参数来设置隐私模式:
如此这般之后,你就可以放心大胆的上传你的图片,但是请遵守当地的法律法规,不要上传一些非法图片,维护社会稳定,人人有责。
七牛云是 iPic 在内测期间呼声比较高的国内图床,这里介绍下在 iPic 中添加七牛云的过程。
这点比较简单,直接到 这里 注册即可。
七牛的数据处理是以 资源 为单位的,这里我们可以简单理解为七牛中的 文件夹 。
登录七牛后,进入 添加资源 页面,选择添加 ****对象存储****。
这里我创建一个 ****test**** 资源。
# 在 iPic 中添加七牛图床
打开 偏好设置 ,进入 图床 页,选择添加 七牛 。
以下分别介绍各项的意义及如何配置:
完成输入后,可以点击 ****验证**** 按钮。如果输入没有问题,则右侧会出现 ****通过**** 链接,点击后就可以看到测试时上传至七牛的图片。
最后,点击 ****应用**** 按钮进行保存。
# 使用七牛
在 iPic 菜单 >图床 中选择刚刚添加的七牛,之后上传的图片就会在七牛图床中。
注:本文中的图就是通过上述方式先上传至七牛、再粘贴至 Markdown 编辑器中,确实很方便,大家试试吧。
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目录下有一个head.pug文件,修改该文件的meta信息,会使生成的所有页面都带有该head。在head.pug文件中添加如下内容,结果参见图片。
在G:\blog\themes\yilia\layout_partial目录下有一个head.ejs,同样在head.ejs文件中添加如下meta信息即可
在G:\blog\public\2021目录下就是所有21年生成的blog,找到该目录下的任意一个index.html,用文本编辑器打开就可以看到已经自动生成了referrer标签了。
然后使用hexo d指令将工程同步到github即可
1. 加载本地图片的方法
2. html访问图片资源403问题(http referrer)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)