Url-loader vs File-loader Webpack



我试图找出url-loader与文件加载器之间的区别。DataURl是什么意思?

url 加载器

的工作方式与文件加载器类似,但可以返回 DataURL,如果 文件小于字节限制。

url-loader会将文件编码为 base64 并内联包含它们,而不是将它们作为单独的文件加载到另一个请求中。

base64 编码的文件可能如下所示:

data:;base64,aW1wb3J0IFJlYWN0IGZ...

这将添加到您的捆绑包中。

只是想添加到詹斯的安维尔

file-loader会将文件复制到构建文件夹,并在包含文件的位置插入指向它们的链接。 url-loader会将整个文件字节内容编码为 base64,并在包含这些内容的位置插入 base64 编码的内容。所以没有单独的文件。

它们主要用于图像等媒体资产。主要是图像。

此技术可能会使页面加载速度更快,因为向服务器发送的下载文件的 http 请求较少。

同样重要的是,您可以指定url-loader的大小限制。对于超出此大小的所有文件,它将自动回退到file-loader

{
    test: /.(png|jpg|gif)$/i,
    use: [{
        loader: 'url-loader',
        options: {
            limit: 8192 // in bytes
        }
    }]
}

两个答案都很好,但我想进一步解释数据 URL,https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs 检查这里,所以它的格式是

data:[<mediatype>][;base64],<data>

例如,如果我转换一个mp3文件,它将如下所示,

import audio from '../assets/media/audio.mp3';
console.log('base64 of my audio: ', audio); 
//with url-loader setup
//I will get something like "data:audio/mpeg;base64,xxx"

相关内容

  • 没有找到相关文章

最新更新