hexo引用本地图片无法显示

2023-11-05

最近重新开始用起hexo,但是发现在文章中引用本地图片时总是显示不出来。

问题如下图所示。

在这里插入图片描述

花费了许久时间才解决这个问题。

因此将一些解决经验整理出来,希望能帮助到大家。

一、插件安装与配置

首先我们需要安装一个图片路径转换的插件,这个插件名字是hexo-asset-image

npm install https://github.com/CodeFalling/hexo-asset-image --save

但是这个插件的内容需要修改【不然可能会出Bug】

打开/node_modules/hexo-asset-image/index.js,将内容更换为下面的代码

'use strict';
var cheerio = require('cheerio');

// http://stackoverflow.com/questions/14480345/how-to-get-the-nth-occurrence-in-a-string
function getPosition(str, m, i) {
  return str.split(m, i).join(m).length;
}

var version = String(hexo.version).split('.');
hexo.extend.filter.register('after_post_render', function(data){
  var config = hexo.config;
  if(config.post_asset_folder){
    	var link = data.permalink;
	if(version.length > 0 && Number(version[0]) == 3)
	   var beginPos = getPosition(link, '/', 1) + 1;
	else
	   var beginPos = getPosition(link, '/', 3) + 1;
	// In hexo 3.1.1, the permalink of "about" page is like ".../about/index.html".
	var endPos = link.lastIndexOf('/') + 1;
    link = link.substring(beginPos, endPos);

    var toprocess = ['excerpt', 'more', 'content'];
    for(var i = 0; i < toprocess.length; i++){
      var key = toprocess[i];
 
      var $ = cheerio.load(data[key], {
        ignoreWhitespace: false,
        xmlMode: false,
        lowerCaseTags: false,
        decodeEntities: false
      });

      $('img').each(function(){
		if ($(this).attr('src')){
			// For windows style path, we replace '\' to '/'.
			var src = $(this).attr('src').replace('\\', '/');
			if(!/http[s]*.*|\/\/.*/.test(src) &&
			   !/^\s*\//.test(src)) {
			  // For "about" page, the first part of "src" can't be removed.
			  // In addition, to support multi-level local directory.
			  var linkArray = link.split('/').filter(function(elem){
				return elem != '';
			  });
			  var srcArray = src.split('/').filter(function(elem){
				return elem != '' && elem != '.';
			  });
			  if(srcArray.length > 1)
				srcArray.shift();
			  src = srcArray.join('/');
			  $(this).attr('src', config.root + link + src);
			  console.info&&console.info("update link as:-->"+config.root + link + src);
			}
		}else{
			console.info&&console.info("no src attr, skipped...");
			console.info&&console.info($(this));
		}
      });
      data[key] = $.html();
    }
  }
});

打开_config.yml文件,修改下述内容

post_asset_folder: true

二、问题推测

(一)本地图片没有有效上传至github仓库中,导致引用无效

解决方案:安装插件(回看前文)

(二)本地图片没有存放在同名文件夹中

解决方案:将需要引用的本地图片存放在与文章名相同的文件夹中

(三)图片路径出错

这也是我出现的问题。

打开F12,发现下图问题。

在这里插入图片描述

因为我在github中关于Hexo的仓库名为850552586.github.io,并不是Ericam.com,所以导致了访问无效。

【这个问题可能是因为我更换电脑后重新配置Hexo忽略的地方】

解决方案:打开_config.yml修改下述内容

在这里插入图片描述

(四)相对路径引用的标签插件

通过常规的 markdown 语法和相对路径来引用图片和其它资源可能会导致它们在存档页或者主页上显示不正确。在Hexo 2时代,社区创建了很多插件来解决这个问题。但是,随着Hexo 3 的发布,许多新的标签插件被加入到了核心代码中。这使得你可以更简单地在文章中引用你的资源。

也就是说在存档页和主页不能使用和文章内容中的常规语法来引用图片。

比如说:当你打开文章资源文件夹功能后,你把一个 example.jpg 图片放在了你的资源文件夹中,如果通过使用相对路径的常规 markdown 语法 ![](/example.jpg) ,它将 不会 出现在首页上。(但是它会在文章中按你期待的方式工作)

正确的引用图片方式是使用下列的标签插件而不是 markdown :

{% asset_img example.jpg This is an example image %}

原创不易,请勿转载。如有问题,可以评论区留言。点赞!


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hexo引用本地图片无法显示 的相关文章

  • hexo引用本地图片无法显示

    最近重新开始用起hexo 但是发现在文章中引用本地图片时总是显示不出来 问题如下图所示 花费了许久时间才解决这个问题 因此将一些解决经验整理出来 希望能帮助到大家 一 插件安装与配置 首先我们需要安装一个图片路径转换的插件 这个插件名字是h
  • hexo搭建博客-butterfly主题详细版

    Hexo搭建博客 butterfly主题 前置知识 对于Github和Gitee的基本了解与使用 最关键的是你要知道github为什么访问的这么慢 如何魔法上网访问github 或者说不用魔法如何访问github 本文在可能遇到的问题说明了
  • Hexo更换主题

    使用Hexo更换主题还算方便 先使用克隆命令安装好主题 然后更改一下博客的配置文件D hexo config yml里面的主题名称就好了 1 安装主题 在博客目录D hexo下右键点击Git Bash 输入以下命令 其他的主题也类似操作 g
  • hexo+git搭建个人博客

    前言 喜欢写 Blog 的人 会经历三个阶段 第一阶段 刚接触 Blog 觉得很新鲜 试着选择一个免费空间来写 第二阶段 发现免费空间限制太多 就自己购买域名和空间 搭建独立博客 第三阶段 觉得独立博客的管理太麻烦 最好在保留控制权的前提下
  • Hexo一些实用的插件

    Hexo的插件真是个好东西 一开始部署博客的时候并没有太在意插件的问题 毕竟觉得博客主题自带的插件挺全面的 足够使用了 但是用久了总是会腻 就想着静态博客能不能整一些新操作 即使只是添加点小功能 于是就翻了翻 Hexo 的插件目录 挑了些比
  • CMake命令行添加编译参数

    CMake命令行添加编译参数 学习自 coroserver 例程 https github com windoze coroserver coroserver 是一个应用 Boost Asio 和 Boost Coroutine 的 多线程
  • 下载iCloud照片/文件的正确姿势(亲测好使)

    这几天准备停用iCloud 需要把里面的数据取出来进行自行保存 原本以为很简单 但实际准备操作时 却踩了几个大坑 本人iCloud主要是存照片 共有30多GB 现在网速快 原本以为几个小时就可以下载完 但最开始尝试了几个方法 均以失败告终
  • 王者荣耀 露娜 技巧-教学-总结

    文章目录 参考教程 技巧和个人理解 连招训练方法 出装顺序 赞同参考教程 节奏顺序 团战 个人遇到的坑 补充描述 参考教程 王者荣耀 国服榜一露娜深度教学 月下无限连 实战案例分析 哔哩哔哩 露娜教程很多 虎牙直播多 技巧和个人理解 连招训
  • 降低指定进程的CPU占用率(适合游戏多开)

    应用场景举例 推荐BES软件 应用场景举例 游戏多开 比如 天书世界 网页游戏 单开占用CPU30 左右 最小化能够降低到10 以下 如果多开 那么CPU就是叠加累计 非常占用CPU资源 而且挂机严重影响CPU温度 1 采用最小化窗口的方式
  • 练什么有利于防身

    短跑 拳击
  • gitlab修改密码后无法pull的解决方法

    在登录gitlab的时候发现密码忘记了 在重新设置了密码之后 git无法pull代码 需要改windows下的凭据管理器中对应gitlab地址的凭据密码 把密码修改成你的新密码 个人建的交流群1125844267 欢迎大家加入 如果内容对大
  • 图片从base64编码转换为jpg文件

    1 使用网站 注意在base64编码前加上 data image png base64 http tool chinaz com tools imgtobase 2 转换的代码 package com test import java io
  • CSDN竞赛6期题解

    CSDN编程竞赛报名地址 https edu csdn net contest detail 16 请不要删掉此地址 总结 这次竞赛题目比较简单 没多大必要写题解 更多的还是给出自己的一些体会和建议吧 很多同学已经对比赛规则和编程体验给出了
  • 解决vs2017无法安装问题

    解决vs2017无法安装问题 金庆的专栏 2018 11 从官网下载了 vs community 1600125377 1541561546 exe 但是运行安装时无法出现产品选择界面 查看 Temp 目录下的日志 没有发现错误 搜索一下
  • 基于frp原理实现的轻量级内网穿透工具frp-python

    gitee地址 https gitee com usualheart frp python github地址 https github com usualheart frp python git frp 是一个专注于内网穿透的高性能的反向代
  • 百度文库等类似工具的免费下载工具

    百度文库如何免费下载文献 软件介绍 百度文库如何免费下载文献 冰点文库下载器V3 1 9 亲测 可用 软件介绍 无需积分就可以自由下载百度 豆丁 丁香 MBALib 道客巴巴 Book118等文库文档 无需注册和登录 下载的文档最终生成高清
  • git 删除右键菜单

    首先 我表示git默认的右键菜单很烦 太多项了 而我们平时用的最多的无非是一个Git Bash 删除msGit右键菜单 如果是windows 64位系统 cmd进入 C Program Files x86 Git git cheetah 目
  • hexo博客文章置顶功能实现的两种方法

    写在前面 本文主要描述了如何实现hexo文章置顶功能 讲述了通过修改源码和通过更改插件两种方式实现 以及如何添加置顶显示 文章可能还有很多不足 请大家谅解 欢迎大佬提意见 本文使用的东西 win10电脑 hexo 4 0 0 文章目录 写在
  • CSDN博文显示图片的方法

    感觉官方应该出一个教程的 不然新手第一次发博文十有八九会发现自己的博文发表之后没有图片 既然官方不给 那么自己摸索咯 参考 http blog csdn net cherish cx article details 52782644 1 编
  • 如何将README.md文件添加到HEXO生成的博客的根目录中?

    我的博客是基于Github Pages我正在使用的程序是HEXO 生成的文件HEXO不包含 README md 文件 因此我无法在 Github 存储库页面上声明我的博客 所以我想将 README md 文件添加到该文件夹 中HEXO生成

随机推荐

  • vue+less 电池电量图标组件

    父组件调用
  • MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置

    MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置 文章目录 MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置 制作局部放大图的方法 文本箭头的便捷设置 小结 本文主要介绍如何在MATLAB中绘制局部放大图和如何便捷地设置
  • DJI Onboard-SDK-ROS-4.0.1 在妙算2-G上编译运行

    编译ROS工程前先按照DJI OSDK4 0 1在妙算2 g上编译运行文章中描述的方法将OSDK 4 0 1编译成功 Onboard SDK ROS 4 0 1 项目地址 https github com dji sdk Onboard S
  • 题目0145-端口合并

    端口合并 题目描述 有M 1 lt M lt 10 个端口组 每个端口组是长度为N 1 lt N lt 100 的整数数组 如果端口组间存在2个及以上不同端口相同 则认为这2个端口组互相关联 可以合并 第一行输入端口组个数M 再输入M行 每
  • 【山河送书第八期】:《用ChatGPT轻松玩转机器学习与深度学习》突破传统学习束缚,借助ChatGPT的神奇力量,解锁AI无限可能!

    山河送书第八期 用ChatGPT轻松玩转机器学习与深度学习 一 前言 二 关键点 三 内容简介 四 作者简介 五 购买链接 六 参与方式 七 往期赠书回顾 一 前言 随着科技的飞速发展 人工智能已经成为了当今社会最热门的话题之一 从自动驾驶
  • 相关滤波论文

    MOSSE 2010 Visual Object Tracking using Adaptive Correlation Filters PDF Minimum Output Sum of Squared Error MOSSE 是第一篇将
  • CSDN高校俱乐部全新改版,欢迎你的加入!

    Hi 同学们 CSDN高校俱乐部全新改版 真诚服务于中国大学生的学习成长和社会实践是我们的宗旨 新版高校俱乐部隆重推出三大服务体系 知识服务 开发服务 职业服务 为你的学习道路铺下坚实的基石 为你的事业搭起成功的阶梯 相信你会为自己的加入而
  • FPGA实战小项目3

    基于FPGA的波形发生器 基于FPGA的波形发生器 基于FPGA的beep音乐播放器设计 基于FPGA的beep音乐播放器设计 基于FPGA的cordic算法实现DDS sin和cosine波形的产生 基于FPGA的cordic算法实现DD
  • cesium 如何使实体平滑更新位置

    如果需要不断更新实体位置 实现平滑过渡的效果可以借鉴该方式 两种方式实现 一是直接赋值新坐标位置 但有时会出现闪烁情况 这里推荐第二种 通过回调函数的方式更新位置 1 直接赋值方式 直接赋值方式 cesium绘制原理是先移除 然后在新位置渲
  • 论文写作资源整理

    论文写作及实验资源 文章目录 论文写作及实验资源 实验相关 数据集 样例代码 在线训练平台 写作辅助 文献管理 文档阅读 图表绘制 文档写作 降重查重 英文写作 其它工具 文献分类 文献检索 期刊下载 顶级会议 信息安全会议 计算机视觉会议
  • Vue-组件二次封装

    本次对el input进行简单封装进行演示 封装很简单 就给激活样式的边框 主要是功能 本次封装主要使用到vue自带的几个对象 attrs 获取绑定在组件上的所有属性 listeners 获取绑定在组件上的所有函数方法 slots 获取应用
  • String arg = input.nextLine();为什么不执行

    String a in nextLine 和String a in next 的区别 当发现String a in nextLine 不能按照自己的要求执行时 可以换为String a in next 执行 nextline读取到的是换行符
  • 06_Vue-router与综合练习

    Vue router 一 生命周期钩子函数 含义 在生命周期处理响应函数的别称 1 初始化 beforeCreat 创建对象时 没初始化data和methods created 实例已经创建好了 此时在里面发送ajax请求 2 挂载 bef
  • 自学Python兼职赚钱靠谱吗?

    自学python兼职九成九是赚不到钱的 程序员兼职的门槛是挺高的 python兼职的类型可以分为 开发 也就是写网页的底层逻辑 但是大概率需要会前端 前端也就是页面 爬虫 数据分析 兼职的话 甲方是不会把数据给你去分析的 在这个社会当中数据
  • html动态设置透明度

  • Debian12中为python3配置虚拟环境及在Pycharm中使用虚拟环境

    在Debian 12中 python默认为python 3 11 基于应用 现需设置虚拟环境 1 安装venv模块 从python3 3开始 配置python虚拟环境 可用venv模块 更加方便了 执行命令 apt install pyth
  • 网络安全管理

    网络安全面临的主要威胁 人为因素 系统和运行环境等 常见的互联网服务安全包括 Web浏览器安全 文件传输 FTP 服务安全 E mail服务安全 远程登录 Telnet 安全 DNS域名安全和设备的实体安全 防火墙的局限性以及风险 防火墙能
  • 编译和安装gdb源码详细步骤介绍

    1 gdb源码下载 1 源码下载网址 https ftp gnu org gnu gdb 2 本文下面的编译是按照8 2版本的源码进行的 其余版本的源码可能会报错 需要自行解决 2 编译源码 2 1 Makefile文件 顶层目录 TOOL
  • 银行业法律法规与综合能力 第四章 银行从业法律基础 25%

    第四章 银行从业法律基础 4 1 银行基本法律法规 1 考点1 中国人民银行的职能和职责 一 职能 二 职责 考点2 中国人民银行的监督管理 一 直接检查监督杈 二 建议检查监督杈 三 特定情况下的检查监督权 考点3 国务院银行业监督管理机
  • hexo引用本地图片无法显示

    最近重新开始用起hexo 但是发现在文章中引用本地图片时总是显示不出来 问题如下图所示 花费了许久时间才解决这个问题 因此将一些解决经验整理出来 希望能帮助到大家 一 插件安装与配置 首先我们需要安装一个图片路径转换的插件 这个插件名字是h