求助:wavesurfer.js本地正常,部署Hostinger后无法生成波形
wavesurfer.js本地正常线上Hostinger无法生成波形的排查与解决思路
以下是针对该问题的具体排查步骤和解决方向:
1. 检查音频文件路径与服务器文件状态
- 核对服务器上
./assets/media/koolFM.wav路径是否完全匹配:Hostinger主机基于Linux系统,文件名、文件夹名区分大小写,需确保服务器上的文件/文件夹名称大小写和本地完全一致(比如本地是koolFM.wav,服务器不能写成koolfm.wav)。 - 直接在浏览器访问音频文件的绝对地址(如
https://subdomain.example.com/assets/media/koolFM.wav),验证文件状态:- 若返回404:说明文件不存在或路径错误,需重新上传文件并修正路径。
- 若返回403:说明文件/文件夹权限不足,将文件权限设为644、文件夹权限设为755(可通过Hostinger文件管理器修改)。
2. 配置音频文件的MIME类型
wavesurfer.js依赖正确的音频MIME类型解析,Hostinger可能未默认配置wav文件的MIME类型:
- 在网站根目录的
.htaccess文件中添加以下配置(若没有.htaccess文件可新建):AddType audio/wav .wav - 配置后再次尝试访问音频文件,确认浏览器能识别为音频格式。
3. 查看浏览器控制台错误信息
打开线上网站的F12开发者工具,通过两个标签定位问题:
- Console标签:查看是否有wavesurfer初始化报错、音频加载失败等提示(如
Failed to load resource: the server responded with a status of 404),根据错误提示直接定位问题。 - Network标签:筛选
Media类型,查看koolFM.wav的请求状态,确认请求是否成功、响应头是否包含Content-Type: audio/wav。
4. 确认wavesurfer.js的加载状态
- 若使用CDN引入wavesurfer.js,检查CDN链接在Hostinger环境下是否可访问;若使用本地文件,核对JS文件的路径和权限,确保文件已正确加载到页面中。
代码优化建议
为避免相对路径的歧义,可将代码中的相对路径改为绝对路径:
// 音频文件路径改为绝对路径 wavesurfer.load('/assets/media/koolFM.wav'); // 按钮图片路径同步修改 playBtn.onclick = function(){ wavesurfer.playPause(); if(playBtn.src.includes("play.png")){ playBtn.src = "/assets/media/pause.png"; } else { playBtn.src = "/assets/media/play.png"; } } wavesurfer.on('finish', function(){ playBtn.src = "/assets/media/play.png"; wavesurfer.stop(); })
内容的提问来源于stack exchange,提问作者Ahaar
相关产品推荐
相关产品推荐

