CSS Failed to decode downloaded font, OTS parsing error: Failed to convert WOFF 2.0 font to SFNT

OTS parsing error: Failed to convert WOFF 2.0 font to SFNT SpringBoot项目启动后,访问页面发现字体图标不显示,打开控制台看到如下报错 Failed to decode downloaded font: URL OTS parsing error: incorrect file size in WOFF header Failed to decode downloaded font: URL OTS parsing error: incorrect entrySelector for table directory OTS parsing erro 阅读详情

最近在看一些关于Web前端的资料,在处理一个CSS中出现以下错误,以此记录。

我在WebStorm下编译一个工程,并在上加载索引页,我得到以下警告在在Chrome控制台:

Failed to decode downloaded font: http://localhost:4200/assets/fonts/Simple-Line-Icons.woff2?v=2.4.0
OTS parsing error: Failed to convert WOFF 2.0 font to SFNT
Failed to decode downloaded font: http://localhost:4200/assets/fonts/Simple-Line-Icons.woff2?v=2.4.0
OTS parsing error: Failed to convert WOFF 2.0 font to SFNT
Failed to decode downloaded font: http://localhost:4200/assets/fonts/Simple-Line-Icons.woff2?v=2.4.0
OTS parsing error: Failed to convert WOFF 2.0 font to SFNT


使用的自定义字体和代码:

@font-face {
  font-family: 'simple-line-icons';
  src: url('../fonts/Simple-Line-Icons.eot?v=2.4.0');
  src: url('../fonts/Simple-Line-Icons.eot?v=2.4.0#iefix') format('embedded-opentype'),
       url('../fonts/Simple-Line-Icons.woff2?v=2.4.0') format('woff2'),
       url('../fonts/Simple-Line-Icons.ttf?v=2.4.0') format('truetype'),
       url('../fonts/Simple-Line-Icons.woff?v=2.4.0') format('woff'),
       url('../fonts/Simple-Line-Icons.svg?v=2.4.0#simple-line-icons') format('svg');
  font-weight: normal;
  font-style: normal;
}

我采用的styleExt为SCSS,stylesheet文件后缀名为.css。

解决方法有2种:

1、将xxxx.css改成xxxx.css.scss。

2、改变字体声明中的format格式。将format('woff')改成format('font-woff')

@font-face {
  font-family: 'simple-line-icons';
  src: url('../fonts/Simple-Line-Icons.eot?v=2.4.0');
  src: url('../fonts/Simple-Line-Icons.eot?v=2.4.0#iefix') format('embedded-opentype'),
       url('../fonts/Simple-Line-Icons.woff2?v=2.4.0') format('font-woff2'),
       url('../fonts/Simple-Line-Icons.ttf?v=2.4.0') format('truetype'),
       url('../fonts/Simple-Line-Icons.woff?v=2.4.0') format('font-woff'),
       url('../fonts/Simple-Line-Icons.svg?v=2.4.0#simple-line-icons') format('svg');
  font-weight: normal;
  font-style: normal;
}
FontVerter:Java字体转换器库 FontVerter Java库,用于转换和处理各种字体格式,规范无效字体并从PDF中提取字体。 目前支持 裸CFF-> OpenType / OTF和WOFF 1.0和2.0 OpenType / OTF / TTF-> WOFF 1.0和2.0 WOFF 1.0-> OpenType和WOFF 2.0 EOT(仅未压缩的v2)-> OpenType 使用PdfFontExctractor实用程序 支持提取PostScript Type0 / Compsoite,裸CFF和TTF字体。 PdfFontExtractor将标准化TTF字体,以确保它们在所有主要的Web浏览器中均有效。 只能使用PdfFontExtractor实用程序转换这些类型 PostScript Type0 /复合-> OpenType / TTF和WOFF 1和2 Maven(在Maven中心) <dep 立即下载

相关推荐

LTspice导入德州仪器SPICE模型的实用指南与常见问题解析

本文详细介绍了如何在LTspice中导入德州仪器的SPICE模型,包括模型文件获取、路径管理、导入步骤及常见问题解析。通过实用指南帮助工程师精确仿真电路性能,提升设计效率,重点涵盖了第三方模型的导入教程和最佳实践。

kk1234的博客 308

Java maven 过滤 font-awesome字体图标

方法一 pom.xml文件增加如下代码 <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true...

null 866

缠中说禅交易指南

战胜市场,其实就是战胜自己的贪婪、恐惧、愚蠢,缠中说禅技术分析理论只是把市场拔光给各位看,而拔光一个人并不意味着就等于征服一个人,对于市场,其道理是一样的。不干,不可能征服市场。对于市场来说,干就是一切。技术分析的最终意义不是去预测市场要干什么,而是分析市场正在干什么,是一种当下的直观。在市场上所有的错误都是离开了这当下的直观,用想象、用情绪来代替。 市场是有规律的,但市场的规律并不是显而易见的,是需要严格的分析才能得到。更重要的是,市场的规律是一种动态的,在不同级别合力作用下显示出来的规律,企图用些单纯的

baidu_25764509的博客 2万+

解决OTS parsing error: Failed to convert WOFF 2.0

背景: jar包项目,字体图标使用异常 问题描述: 如下图 chrome浏览器显示警告(edge干脆小方框也不显示)如下: 问题产生原因: 问题1: maven filter功能,导致拷贝资源损坏 问题2:页面加载字体文件时,后台以文本的形式响应 解决办法: 问题1:针对maven, filter 功能导致资源拷贝过程损坏问题,采取如下方式解决: ①拷贝静态资源时,使用filter先排除...

u012888979的博客 3795

计算机考研复试面试常问问题 数据结构篇(下)

计算机考研复试面试常问问题 数据结构篇(下) 使用前需知(拒绝白嫖,如果对你有帮助,你只需点个赞就行): 注意:有人在闲鱼上盗卖我的资料,而且还有很多同学买了,请各位擦亮双眼,我是整理出来免费分享给大家的! 大家请多点赞和评论,这样后面的同学更容易百度到,不至于被人盗卖,我就不加水印影响大家使用了! 第一次整理,度不好控制,有不好的地方希望大家理解,后面可能会改进,造福今年之后的同学们! ...

程序员宝藏的博客 1万+

新能源场站必看:一次调频与AGC/AVC的协同控制逻辑解析(含典型拓扑图)

本文深度解析了新能源场站中一次调频与AGC/AVC的协同控制逻辑。针对电网频率与电压稳定需求,详细阐述了三者在响应时序、控制目标上的分工与配合,并重点剖析了以RCL-0923装置为核心的指令融合架构与典型拓扑,为场站实现高效、稳定的协同运行提供了清晰的实践指导。

brown的博客 1056

浏览器报警告,Failed to decode downloaded font和OTS parsing error: Failed to convert WOFF 2.0 font to SFNT

文章目录静态资源文件拦截字体报错 Failed to decode downloaded font 静态资源文件拦截 在整合一个前端框架到我的项目中的时候,浏览器报404,这个很容易解决,Spring拦截器给拦截了,在Spirng中配置一下不拦截规则即可。 配置Spring拦截规则 @Configuration public class WebMvcConfig implements WebMv...

习惯了想你的博客 7583

android 如何分析应用的内存(十六)——使用AS查看Android堆

在前面,先介绍了如何使用jdb和VS code查看应用栈相关内容。本文将介绍,如何查看堆中的内容。

安仔的博客 4253

Failed to convert WOFF 2.0 font to SFNT

我引入了 layui (layui目录结构没变)发现字体文件显示不出来。 layui 的目录 resources/static/layui 原因: 在maven的 filter 解析 font 文件时,它破坏了 font 文件的二进制文件格式,导致浏览器解析出错。 解决 在 filtering 为 true 的 resource中排除 在 filtering 为 false 的 resource中引入 这样maven就不会过滤字体文件了 <build> <resourc

欢迎所有人,批评指正! 1022

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

Robot_PLC_HMI_Automation 3575

【PyQt】使用PyQt6基于Scenedetect制作视频场景自动分割应用

通过详细介绍PySceneDetect的功能和应用,本文阐释了如何利用这一工具提高视频编辑的效率。我们讨论了安装方法、命令行使用示例以及如何在Python脚本中集成PySceneDetect。此外文章还涵盖了基于PyQt6的图形界面设计,通过多线程技术处理视频,保证界面的响应性,并通过实时反馈机制提升用户体验。无论是专业的视频制作团队还是个人爱好者,PySceneDetect都提供了一种可行的、效率高的场景检测工具,让视频编辑工作变得更加简单快捷。

Mr数据杨 960

解决Spring Boot OTS parsing error: Failed to convert WOFF 2.0

在项目中为了方便配置,通常会使用properties文件保存配置信息,项目启动时,需要maven开启filtering用properties中的属性值替换掉配置文件中的占位符,比如我的项目中使用c3p0.properties文件保存数据库的连接信息,这样我每次需要修改数据库的连接信息时,只需要修改c3p0.properties中的文件即可,在mybatis-config.xml中使用${}读取值(

u013737646的专栏 2万+

36、基于启发式的双向RRT*路径规划算法解析

本文介绍了一种基于启发式的双向RRT*路径规划算法(LGHB-RRT*),通过地图预处理、通道区域提取和通道识别点定义,结合随机树的引导生长与可变密度采样机制,显著提升了在复杂通道环境下的搜索效率与成功率。算法采用双向扩展结构,并引入启发式生长策略引导树向通道关键点发展,同时利用路径优化简化最终路径。仿真结果表明,该算法在多种复杂地图中均能高效找到最优路径,优于传统RRT*和Bi-RRT*算法,具备良好的适应性与应用前景。

rgv234567的博客 116

浏览器显示Failed to decode downloaded font问题解决方案

最近做一个spring boot项目时,网站有的图标显示的是小方格的形式 例如这样: 然后百度了半天,以下有四种解决方法: 第一:如果是在谷歌或者火狐浏览器出现的话,换成ie浏览器就可以显示了。(我的就是这种!!!) 如果你是那种刨根问底的性格,非要使用谷歌或者火狐,可以在服务器设置一下自己定义MIME类型。(具体自行百度)。 第二:检查是否使用maven,如果是,由于maven的filter(拦截),会破坏font文件的二进制文件格式,导致前台解析出错, 所以可以添加以下代码,到pom文件的标签下的标签

weixin_44173639的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Failed to decode downloaded font 浏览器异常警告解决

问题:在将之前写好的静态 HTML 页面引入到 SpringBoot 中,静态资源中带有 font 字体图标, 引入后图标不能正常显示,且浏览器出现Failed to decode downloaded font警告; 原因:触发这种情景的原因是因为项目使用了Maven管理,想要修复它只需在pom文件中添加 <filtering>false</filtering> 完整配置: <resources> <resource> ..

往南的博客 3126

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【HTML5】浏览器不能显示字体报错Failed to decode downloaded font问题解决

把网上的项目中字体通过链接保存下来在本地上使用,在本地服务器上运行站点发现,用Chrome浏览器访问的时候,出现错误提示不能正常显示字体,怎么解决呢,看看怎么搞。

4010

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

处理项目图标不显示的问题

【代码】处理项目图标不显示的问题。

love_yourself_ok的博客 420

layui字体图标有问题,浏览器报 Failed to decode downloaded font:

原因可能是乱码导致的,加入插件让字体文件不乱码 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <main

lf1934305268的博客 997

亲身踩坑 多种方法帮你解决 Failed to decode downloaded font VUE 引入字体没有效果

亲自踩坑,搜索无数博客,帮你罗列VUE不能显示自定义字体的BUG解决方案。

Youweretrouble的博客 1万+

Spring Boot + Bootstrap 出现"Failed to decode downloaded font"和"OTS parsing error: Failed to convert W

转载自:https://www.cnblogs.com/tomcatandjerry/p/5799188.html 准确来讲,应该是maven项目使用Bootstrap时,出现 "Failed to decode downloaded font"和"OTS parsing error: Failed to convert WOFF 2.0 font to SFNT" 导致图标出不

kule1208的博客 1952

解决 Failed to decode downloaded font

使用Springboot+ bootstrap 开发做项目,在写页面时候出现按钮不展示,查看页面出现下面的我问题:因为经过maven的filter,会破坏font文件的二进制文件格式,到时前台解析出错。解决方案: &lt;resources&gt; &lt;resource&gt; &lt;directory&gt;src/main/reso...

一个写了10年bug的程序员日常笔记。 4万+

react项目引入字体文件失败:Failed to decode downloaded font

3)打包后,public目录下的字体文件作为静态资源存在,部署到服务器上之后,发现字体引入失效,控制台提示的download路径为:http://ip/fonts/……2)src中url路径不添加public,直接使用/即表示在public目录下,项目中加上/public的别名~@public之后,有时字体文件引入会失效,直接使用上述代码的/fonts/。react项目中引入字体文件,本地启动时,有时候生效,有时候失败,控制台提示:Failed to decode downloaded font。

u010234868的专栏 1233

element ui 图标显示“口“字,无法加载,控制台打印Failed to decode downloaded font 问题总结

后端前端。

qq_38811926的博客 1219

【解决思路】Failed to decode downloaded font

前端浏览器页面报错 Failed to decode downloaded font:…ttf Failed to decode downloaded font: …woff 两个思路: 1.maven创建的项目,maven的filter会拦截font文件的二进制形式,因此需要放开对font等文件的拦截 //在pow.xml文件配置插件 <plugin> <artifactId>maven-resources-plugin</

PocketKnife 1869

浏览器警告Failed to decode downloaded font 系统页面字体图标加载不出来(线上环境字体图标不显示)

#Failed to decode downloaded font 当我们发现页面有些字体图标不显示,或者显示错误时,浏览器就会报上述错误。 这时候解决方法有三点(三步): 第一:检查是否使用maven,如果是,由于maven的filter(拦截),会破坏font文件的二进制文件格式,导致前台解析出错, 所以可以添加以下代码,到pom文件的<project>标签下的<b...

uiguion的博客 2万+

vue引入ttf字体文件报Failed to decode downloaded font

将阿里图标库直接下载的ttf字体文件重新转换ttf后再引入,效果实现,控制台不再报错。但是运行后效果不显示,无法解码下载的字体,试了很多方法,都没有效果。打开下载的文件夹,包含了转换后的字体文件、网页效果以及css源码。

weixin_53797856的博客 1062
上一篇: 苹果开发者账号
下一篇: Android JNI关于错误: 找不到 'xxx.xxx.xxx.JniUtil' 的类文件记录
scribbler
博客等级 码龄19年 20粉丝 16原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值