reactjs - 如何在反应头盔中预加载最大内容绘制图像
问题描述
我在灯塔收到了这个警告
我尝试按照了解更多链接告诉我的操作,并在图像的头部包含一个预加载标签,但我仍然收到警告
我尝试了这个预加载标签,当我右键单击图像并选择“在新标签页中打开”时,该网址是浏览器中的那个标签
<link rel="preload" as="image" href={`https://example.com:8080/src/assets/images/example.webp`} />
图像只是导入到 jsx 组件中import banner from "images/banner-large.png";
,然后使用图像标签呈现 <img src={example} className="w-100 banner-img" alt="Description" />
我还用于img-optimizer-loader
对我的图像进行网络优化,并将它们转换为我的 webpack 配置中的 webp,如下所示
{
test: /\.(gif|png|jpe?g|webm|webp)$/i,
use: [
{
loader: "img-optimize-loader",
options: {
compress: {
// This will transform your png/jpg into webp.
webp: {
quality: 75,
},
disableOnDevelopment: true,
},
name: "[path][name].[ext]",
},
},
],
},
值得注意的是,我导入了我的图像
import image from 'src/assets/images/example.png'
但是由于img-optimize-loader
,我所有的图像都在构建中转换为 webp ,并且 webp 图像是显示的图像。
解决方案
Helmet
在您的图像组件中导入和使用:
import { Helmet } from 'react-helmet'
import example from "images/example.png";
function Image () {
return (
<Helmet>
<link rel="preload" as="image" href={example}>
</Helmet>
)
}
推荐阅读
- python - 比较 numpy 数组中的多边形
- wso2 - WSO2 Integrator:REST API GET 请求缺少响应正文
- python - 如何在包含多值项的数据框列中获取值
- java - 在动作侦听器中将当前 JFrame 的引用传递给 JDialog
- ruby-on-rails - 上限生产部署 - Rails 6 - 失败
- node.js - 设置 NODE_EXTRA_CA_CERTS 后仍收到 SSL 错误“CERT_HAS_EXPIRED”
- haskell - Haskell 中 (\xyz -> xyz) 的含义
- python - 如何使用 hyperopt 优化总和为 1 的向量?
- javascript - 如何根据属性扩展/扩展对象数组
- scala - 有没有办法以日期格式获取当前时间戳