webpack 5导入图片和字体,在prod中重写url
Webpack 5 import images and fonts, rewrite url in prod
我需要将图像和字体文件复制到 dist 目录中的相应文件夹,问题是在最终的 css 文件中我得到了错误的 url 路径。我试图禁用 url css-loader
然后根本不复制文件。尝试将 ~
添加到 url 。
我需要使用 asset/resource
在样式表中复制并粘贴正确的路径。其他各种过时的解决方案对我不起作用。
我少导入文件到main.js。
我的文件夹结构
自定义 publicPath 以指向提供静态文件的文件夹。
我通过添加 publicPath: "."
解决了我的问题,为什么引号中有一个点?因为我在 url 本身中有路径 ./
,所以我添加一个点,我可以退出目录。
对于字体,我创建了一个生成器来创建一个单独的文件夹,路径的工作原理相同。
output: {
path: path.resolve(__dirname, "dist"),
publicPath: ".",
assetModuleFilename: "./img/[name].[ext]",
clean: true,
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
type: "asset/resource",
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/i,
type: "asset/resource",
generator: {
filename: "./fonts/[name][ext]",
},
},
我需要将图像和字体文件复制到 dist 目录中的相应文件夹,问题是在最终的 css 文件中我得到了错误的 url 路径。我试图禁用 url css-loader
然后根本不复制文件。尝试将 ~
添加到 url 。
我需要使用 asset/resource
在样式表中复制并粘贴正确的路径。其他各种过时的解决方案对我不起作用。
我少导入文件到main.js。
我的文件夹结构
自定义 publicPath 以指向提供静态文件的文件夹。
我通过添加 publicPath: "."
解决了我的问题,为什么引号中有一个点?因为我在 url 本身中有路径 ./
,所以我添加一个点,我可以退出目录。
对于字体,我创建了一个生成器来创建一个单独的文件夹,路径的工作原理相同。
output: {
path: path.resolve(__dirname, "dist"),
publicPath: ".",
assetModuleFilename: "./img/[name].[ext]",
clean: true,
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
type: "asset/resource",
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/i,
type: "asset/resource",
generator: {
filename: "./fonts/[name][ext]",
},
},