hexo上传网页无法显示图片的有效解决方法

本文介绍了在使用Hexo+Github搭建博客时遇到的图片无法显示的问题,包括直接引用网络资源、使用hexo-asset-image插件以及Markdown插入图片的尝试。作者最终发现手动更改图片路径并上传.com文件夹至Github可以解决问题,但该方法费时费力。另外,文章提到了hexo-asset-image插件可能导致的主题丢失和引用错误,并提供了相应的解决思路。

本文是hexo+github快速搭建html5一文的一部分:https://alvincr.com/2021/01/hexo-with-github_pages/#i-4

个人博客:alvincr.com

 

2021.1.16内容已修改,下文方法已被淘汰。

 

 

网页无法显示图片

方法1:设置图片直接引用网络资源

方法2:使用hexo-asset-image插件

方法3:使用Markdown嵌入图像(在下面单独写)

使用插件官网教程:https://hexo.io/zh-cn/docs/asset-folders

使用hexo-asset-image

2021.1.14.22.10此问题已解决,官网给的教程个人测试无效,我想到了更简单的方法。

查看网页原代码发现图片引用的位置全是.com文件,那么直接将图片保持在.com里就,再手动将.com文件夹push到github上就行了,在typora里面设置如下:

不过测试发现也有些问题,主要是.com好像不能识别,因此写完文章时将所有的.com替换成com,然后上传com文件夹即可。

完美解决:

-------------------------------------------------------------------(测试方法)

(此方法问题较多,已弃用,建议直接使用网络url的形式)

安装第三方插件hexo-assrt-image,此插件会引用在_post目录下与文件同名的文件夹,里面保存文件使用的图片,但是我测试的时候发现,必须还要设置typora才能将图片保存到本地文件夹,安装插件方法:

将post_asset_folder: false修改为post_asset_folder: true

命令提示符命令输入npm install hexo-asset-image –save

使用此方法插入图片需要使用:![logo](logo.jpg) to insert logo.jpg. 进行插入

问题一:

当我安装hexo-asset-image之后,虽然能生成文件夹但是出现No layout: index.html的错误,一开始出现这个错误是因为我使用主题名称没写对,这次出现这个问题的时候已经能够正常访问github pages的内容了,安装完插件后出现的此类现象:

当我查看一下我的node_modules目录后,发现我的主题被这个插件给删除了..再加回来就行了。

官网给出的解决方法(实际上不同问题不同看待,官网给出的方法完全没用):

solution:you are both experiencing a warning that is perfectly normal and will not cause any issues for development. When using OS X there’s a nice filesystem feature provided by the OS by which file changes emit events, making “watching” files for changes the reverse, where they’re passively “listened” for (Change Detection vs an Event Emitter if you need an analogy).
This is made possible by fsevents, a package that is only available for OS X and macOS installations due to dependence on the OS’s functionality. Windows and *nix will all see this warning. I haven’t tested it, but the only non-proprietary OS that might have support would be the Darwin open source project.

问题二:

官网中给出使用此插件插入的方法,但是我个人测试无效:

正确的引用图片方式是使用下列的标签插件而不是 markdown :{%asset_img example.jpg这是示例图片%}通过这种方式,图片将会同时出现在文章和主页以及归档页中。

直接粘贴图片测试发现:使用此插件后仍然存在问题,alvincr打开网站时还是不显示图片,我查看一下文章的源代码,发现引用的图片地址为/.com//word-image-82.png,然而根目录下根本没有.com的文件夹,甚至整个目录都没有png图片。

出现此类问题的解决方法比较简单,那就是插入图片时手动更改图片的路径,但是费时费力,还不如直接上传到图床,复制url呢。

<think>好的,我需要帮用户解决Hexo博客中音乐和图片无法显示的问题。首先,我需要分析用户提供的引用内容,看看有没有相关的解决方案。 用户提到了引用[1]关于在Butterfly主题中添加aplayer播放本地音乐,引用[2]关于Matery主题中图片显示问题,引用[3]关于Next主题的配置,引用[4]使用jsDelivr加速图片访问。这些都是不同主题的配置方法,可能需要根据用户的具体主题来调整。 首先处理音乐无法显示的问题。引用[1]中提到需要将音乐文件放在正确的目录下,比如source/music/,并在配置文件中正确引用路径。可能用户没有正确放置文件或路径错误。另外,跨域问题也可能导致音乐无法加载,需要检查服务器配置或者使用相对路径。 然后是图片无法显示的问题。引用[2]和引用[4]都提到了图片路径的问题,需要确认图片是否放在正确的目录,比如source/images/,并且在Markdown中使用正确的相对路径或绝对路径。使用jsDelivr加速时,需要注意仓库名和版本号是否正确,否则图片链接会失效。 另外,用户可能需要清除Hexo缓存,重新生成静态文件,并检查服务器是否正确部署。不同主题可能有不同的配置方式,比如Next主题需要修改_layout.swig文件,而Butterfly主题可能在_config.yml中有不同的设置。 还需要考虑是否使用了正确的语法,比如HTML标签是否正确闭合,或者Markdown的图片语法是否有误。如果使用外部CDN,需要确认链接是否有效,并且资源是否公开可用。 最后,建议用户检查浏览器控制台是否有报错信息,这有助于快速定位问题所在,比如404错误或跨域错误。根据具体情况,可能需要修改配置文件、调整文件路径或更新资源链接。</think>### Hexo博客音乐/图片无法显示解决方案 #### 一、音乐播放问题 1. **本地音乐路径配置** - 将音乐文件(.mp3)放在`source/music`目录下(需手动创建) - 在主题配置文件`_config.yml`中添加: ```yaml aplayer: meting: false cdn: https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.js style_cdn: https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.css audio: - name: "歌曲名" artist: "歌手" url: "/music/yourmusic.mp3" # 使用绝对路径 cover: "/images/cover.jpg" # 封面路径 ``` - **注意**:Butterfly主题需启用aplayer插件[^1] 2. **跨域问题处理** - 在博客根目录`_config.yml`中添加: ```yaml url: https://yourdomain.com # 必须配置正确 ``` #### 二、图片显示问题 1. **本地图片存储方案** - 创建`source/images`目录存放图片 - Markdown中使用: ```markdown ![描述](/images/your-image.jpg) ``` - 若使用Matery主题,需检查HTML模板中的路径配置[^2] 2. **CDN加速方案** - 使用jsDelivr加速(适合Github仓库): ```markdown ![图片描述](https://cdn.jsdelivr.net/gh/用户名/仓库名@版本号/图片路径) ``` - 示例: ```markdown ![demo](https://cdn.jsdelivr.net/gh/username/repo@1.0/images/demo.png)[^4] ``` #### 三、通用检查步骤 1. **路径验证** - 浏览器按F12打开控制台,查看资源加载状态 - 确认报错类型:404(路径错误)或403(权限问题) 2. **缓存清理** ```bash hexo clean && hexo g && hexo s ``` 3. **主题配置差异** - Butterfly主题:检查`source/_data/aplayer.yml` - Matery主题:验证`post_meta.html`模板路径[^2] - Next主题:确认`_layout.swig`中的资源加载[^3] #### 四、进阶调试 1. **强制刷新策略** - 在图片URL后添加版本号: ```markdown ![图片](/images/logo.png?v=1.0) ``` 2. **网络协议适配** - 混合内容问题需统一使用HTTPS: ```html <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值