hexo图片不显示问题


我的博客地址:https://hejihui1.github.io

解决hexo无法显示图片问题:

1 把主页配置文件_config.yml 里的post_asset_folder:这个选项设置为true

2 在你的hexo目录下执行npm install hexo-asset-image --save,这是下载安装一个可以上传本地图片的插件

但是这个插件的内容需要修改,不然可能会出问题

打开/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();
    }
  }
});




3 执行hexo new post "test"来生成md博文时,/source/_posts文件夹内除了test.md文件还有一个名为test的文件夹

4 最后在test.md中想引入图片时,先把图片复制到test这个文件夹中,然后只需要在test.md中按照markdown的格式引入图片:

![你想输入的替代文字](test/图片名.jpg)

注意: test是这个md文件的名字,也是同名文件夹的名字。只需要有文件夹名字即可,不需要有什么绝对路径。你想引入的图片就只需要放入test这个文件夹内就好了,很像引用相对路径。

如果还是不显示,用以下方法再试试:(我是使用下面的方法成功的)

在markdown文件中使用如下格式进行图片的访问:

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

*下图是我在hexo插入图片部署到github成功的一张截图:

或者直接使用图床,Markdown格式插入就行。

bd315c6034a85edf119240ed9a52aa2bdc5475f5


文章作者: 派大星是一个天才
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 派大星是一个天才 !
评论
 上一篇
博客搭建 博客搭建
hexo模板+matery主题部署到github,,hexo有2种配置文件,一个是根目录_config.yml(站点配置),theme下的 _config.yml(主题配置)
2022-04-12 派大星是一个天才
本篇 
hexo图片不显示问题 hexo图片不显示问题
2022-04-11 派大星是一个天才
  目录