解决webpack5打包html中图片后图片无法显示问题

本文介绍了在Webpack中处理图片路径错误的方法。通过调整url-loader配置及使用html-withimg-loader来确保图片路径正确加载,避免因模块化差异导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误代码如下:

	//loader的配置
	module: {
		rules: [{
				test: /\.(png|svg|jpg|jpeg|gif)$/,
				loader: 'url-loader',
			},
			{ test: /\.html$/,loader: 'html-loader' }
		]
	},

此时打包好的html文件中的img标签路径(为错误路径):

在这里插入图片描述

解决方案

------在尚硅谷的webpack5视频教程中有讲到,因为url-loader默认使用es6模块化进行解析,而html-loader使用的是commonjs进行解析,所以url-loader解析时会出错(见上面错误路径图片)。

方案一代码:

			{
				test: /\.(png|svg|jpg|jpeg|gif)$/,
				loader: 'url-loader',
				//禁用掉es模块
				options: { esModule: false }
			},
			//注意!!!!!!!!!!!!!!!!!!!!!!
			//此处使用webpack5支持的 "html-withimg-loader",
			//如使用 "html-loader",就算禁用了es模块还是会没用
			{ test: /\.html$/, loader: 'html-withimg-loader' }

成功后图片,可与上面的错误路径图片进行对比。

在这里插入图片描述

方案二代码:
使用webpack官方文档提供的方法,官方方法位置:指南—>管理资源—>加载images图像。

			{
				test: /\.(png|svg|jpg|jpeg|gif)$/i,
				type: 'asset/resource',
			},

最后欢迎留言讨论v( •̀ ω •́ )✧。

HTML 项目打包为可执行的 EXE 文件,通常可以借助 Electron 框架实现。Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用的框架,能够将网页内容封装为独立的桌面应用程序。以下是详细的步骤说明: ### 准备工作 1. **安装 Node.js 和 npm** 确保你的系统中已安装 [Node.js](https://nodejs.org/),它会自动安装 npm(Node 包管理器)。 2. **创建项目目录** 创建一个新的文件夹作为你的项目根目录,并将 HTML、CSS、JS 等资源文件放入其中。 3. **初始化项目** 在项目根目录下打开命令行工具(CMD 或 PowerShell),运行以下命令来生成 `package.json` 文件: ```bash npm init -y ``` 4. **安装 Electron** 在项目根目录下运行以下命令安装 Electron: ```bash npm install electron --save-dev ``` ### 创建 Electron 主进程文件 在项目根目录下创建一个名为 `main.js` 的文件,并添加以下内容: ```javascript const { app, BrowserWindow } = require('electron'); function createWindow() { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }); win.loadFile('index.html'); // 加载本地 HTML 文件 win.webContents.openDevTools(); // 可选:打开开发者工具 } app.whenReady().then(createWindow); app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow(); } }); ``` ### 配置打包脚本 在 `package.json` 文件中添加一个打包脚本: ```json { "name": "your-project-name", "version": "1.0.0", "main": "main.js", "scripts": { "start": "electron .", "packager": "electron-packager ./ App --platform=win32 --arch=x64 --overwrite" }, "devDependencies": { "electron": "^23.0.0", "electron-packager": "^15.0.0" } } ``` ### 打包项目 1. **安装打包工具** 在项目根目录下运行以下命令安装 `electron-packager`: ```bash npm install electron-packager --save-dev ``` 2. **执行打包命令** 运行以下命令进行打包: ```bash npm run packager ``` 打包完成后,会在项目目录下生成一个名为 `App-win32-x64` 的文件夹,里面包含可执行文件 `App.exe`。 ### 可选:使用 Enigma Virtual Box 打包依赖 如果你希望将整个打包后的文件夹(包括所有依赖)合并为一个单独的 EXE 文件,可以使用 [Enigma Virtual Box](https://enigmaprotector.com/) 工具。该工具可以将多个文件和资源打包进一个可执行文件中,避免依赖缺失问题。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值