我在使用webpack文件加载器时遇到了播放mp3文件的问题。
问题是这样的:
我有一个mp3文件存储在我的硬盘上,如果我在Chrome中打开它(例如 "c:\somefolder\somemp3file.mp3"),它会在浏览器选项卡中正常播放。
然而,当我使用webpack提供同样的文件时,它不能工作。我已经按照以下方式在webpack中配置了加载器:
{
test: /\.(gif|jpg|png|mp3|aac|ogg)$/,
loader: 'file'
}
然后,当我尝试链接所需文件时,我需要在我的 JavaScript 中引用它,就像这样:
require('file!./../content/somemp3file.mp3');
这可以正确地为我返回mp3文件的url。
如果我尝试手动输入由require返回的url,然后在Chrome中弹出了预期的mp3播放器,但无法播放该文件,并且不可能点击播放按钮,就像文件已损坏或其他原因一样。有人知道我在这里做错了什么吗?
require()
时,请尝试删除file!
。这实际上会导致生成第二个.mp3
文件,大约是80字节左右。如果您查看文件,它只是一个字符串的模块导出(指向捆绑的实际.mp3
文件的URL)。因此,请将webpack配置保留为原样,然后在js文件中使用var src = require('./../content/somemp3file.mp3'); document.getElementById('myAudio').src = src;
。 - Eric Lease