使用svg-sprite-loader 遇到的问题

nuxt 自动导入svg不显示(svg-sprite-loader) 记录下一个小问题 nuxt 自动导入svg不显示 一开始用的是svg-sprite-loader打包svg图片,然而在nuxt.config.js中配置后一直没有效果,并不会生成下图这个玩意 经过我一番搜索,还是没有找到解决方法,直到我突然百度搜索突然推了个这个,让我突然感觉到了希望,这个loader网址:点这 然后安装: npm install nuxt-svg-sprite-loader 配置nuxt.config.js: modules: [ ['nuxt-svg-sp 阅读详情

  趁记忆还热乎   赶紧过来记录一下自己踩坑的记录

现有的项目是从另一个项目移植过来的, 并不是完全移植  为了减小项目的体积  前端组长将一些暂时用不到的组件 node包都剔除了  这也就引出了一下的问题

今天调试菜单图标的时候 发现项目中菜单的图片渲染用到的是icon-svg 这个组件 但怎么找都找不到这个组件  于是我才原有项目中找了一下 copy过来

 

但这样子仍然不行啊,svg标签出来了 但样式  svg内容没有出来, 于是继续把样式扒过来, 样式对了 但svg内容就是死活出不来,   于是我一直搜这个svg在哪个地方引入的

怎么注入到页面的  折腾了一上午,终于让我发现了 一句话 原项目中这样写


 

Vue.component('icon-svg', IconSvg)


const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('./svg', false, /\.svg$/)
const iconMap = requireAll(req)


generateIconsView.generate(iconMap) // just for views/icons , you can delete it

 

于是我搜索这句话什么意思  

后来我发现我少引入了svg的loader   对比了二个项目中的webpack的webapck.base.conf.js 把svg-sprite-loader 引入 

引入之后 配置好编译好的目录

{
        test: /\.svg$/,
        loader: 'svg-sprite-loader',
        include: [resolve('src/icons')],
        options: {
          symbolId: 'icon-[name]'
        }
      },

 

启动之后 发现项目起不来了 麻蛋

仔细看错误信息 原来在编译的时候 找不到svg文件里 没有<svg> 标签    怎么会这样  明明有啊 

 

后来我又搜了一下这个出错的问题  又看了一下 webapck.base.conf.js 这个文件 发现还有一个loader 处理了svg文件

{
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
        loader: 'url-loader',
        exclude: [resolve('src/icons')],
        options: {
          limit: 10000,
          name: utils.assetsPath('img/[name].[hash:7].[ext]')
        }
      },

二个loader都处理了svg文件 导致svg-sprite-loader'在编译的时候  并不是svg源文件 于是出错了

 

解决方案:

为二个loader 设置编译的文件  

 exclude: [resolve('src/icons')], 排除 目录src/icon   

 include: [resolve('src/icons')],  只对src/icon 目录生效

 

OK

该做的都做了  再不出现图标 我就真的要哭了

 

启动

打开首页

....

...

...

.....

.....

 

 

出现了  出现了  

哈哈哈哈哈哈.............

我最喜欢踩坑了  我最喜欢填坑了  么么哒 

 

svg-sprite-loader svg-sprite-loader 是什么? 它是用于创建SVG精灵图的Webpack加载程序。通过该插件可以将导入的SVG文件自动生成为symbol标签并插入进html中。 官方源码 svg-sprite-loader 怎么使用? 1、安装 npm install svg-sprite-loader -D ... 阅读详情

相关推荐

解决PubMed卡在“正在检查浏览器”页面的完整排查指南

DNS解析是将域名转换为IP地址的基础网络服务,其稳定性和准确性直接影响网站访问。当DNS服务器响应缓慢或返回异常结果时,可能导致客户端与服务器建立连接时出现偏差,从而触发网站的安全验证机制,例如Cloudflare等安全服务提供的浏览器环境检查。这一机制旨在防御恶意流量,但偶尔也会误拦截正常访问。在生物医学信息检索领域,PubMed作为核心文献数据库,其稳定访问对科研工作流至关重要。针对因DNS或本地缓存问题导致的‘正在检查浏览器’页面卡顿,通过刷新DNS缓存、更换为Google Public DNS或C

weixin_29597551的博客 3748

在Vue3项目中使用svg-sprite-loader

本文基于Vue3项目介绍svg-sprite-loader在项目中的使用方式,手把手教你封装一个SvgIcon全局组件,提高svg图标复用性的同时让你的代码看起来更加优雅。

qq_52569656的博客 1万+

MavLink协议入门

MAVLink是一个非常轻量化的开源的消息协议,用于无人机之间的通信以及无人机机载设备之间的通信。

ffffffeiyu的博客 2479

使用 svg-sprite-loader、svgo-loader 优化 svg symbols

最近重新学习了一遍 React 基础,新起了个小 Demo 实践一下,项目中用到的静态资源也比较少,图标当时使用的是svg symbols 的方式引入(字体图标三种格式区别),但是在开发的过程中遇到几个问题: ① 下载的 svg 可能有自带的 fill 属性,添加 color 样式不生效。 ② 封装 Icon 组件时,每用到一个 svg 图标都需要引入一下,显得有点不太聪明。 为解决上述两个问题,上网找了一下解决方案,在这里总结一下,每天成长一点点。

Yingjieweb 的技术博客 1万+

银河麒麟V10ServerSP3中安装Nacos2.4.x详细教程

银河麒麟V10ServerSP3中安装Nacos2.4.x详细教程

yuanjinshenglife的专栏 1303

AI智能体项目管理框架agent-pm:从原理到实战的多智能体协作指南

在人工智能和自动化技术快速发展的今天,多智能体系统已成为实现复杂任务自动化的重要技术路径。其核心原理在于通过任务分解、角色分配和状态管理,让多个AI智能体像人类团队一样协同工作,从而突破单个模型的性能边界。这种架构的技术价值在于将软件工程中成熟的项目管理方法论引入AI领域,显著提升了自动化流程的可预测性、可观测性和可复用性。在实际应用场景中,多智能体协作框架能够高效处理从代码开发、文档撰写到数据分析等一系列任务,尤其适合需要多步骤、多专业协同的复杂项目。本文聚焦的agent-pm框架,正是这一领域的典型实践

weixin_42533910的博客 715

vue使用Font class报错:ExtractPluginMissingException: svg-sprite-loader exception

打开iconfont.css 注释掉最后一个svg,然后把上一行的逗号改成分号就可以了。 顺便注意一下vue.config.js中chainWebpack的配置

奔跑的面条博客 4412

软件测试工程师最常用的Linux系统命令大全(汇总)

cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。

1334

使用svg-sprite-loader遇到的问题

由于vue cli默认已经对svg做了处理,所以在使用svg-sprite-loader时有冲突导致图标不能正常显示。然而不仅如此,在改动过老项目的时候,svg多处被用作图片/字体图标使用。对svg做的处理,正则匹配后缀名为.svg的文件,匹配成功之后使用 url-loader 进行处理。加载器用起来真香,配置起来也很简单,网上有很多教程,再=在此就不追述了;仅记录一下我在配置时踩的坑。文件放到不同的目录中,配置不同的。(作为icon的svg)通过上面的配置不同的。

weixin_44761091的博客 1439

Flutter UI代码生成实战:Cursor与MCP的企业级规范适配

本文探讨了在企业级Flutter项目中,如何通过配置Cursor Rules与定制Figma MCP工具,为AI代码生成设定严格的开发规范。该方法解决了AI生成代码与现有项目架构、命名约定及资源引用规范脱节的核心痛点,实现了从Figma设计稿到高质量、可维护Flutter UI代码的自动化流程,显著提升团队协作效率与代码一致性。

http9protocoller的博客 280

Stata实战入门:从数据导入到基础分析的全流程指南

本文提供了Stata实战入门的全流程指南,从数据导入、清洗到基础分析和可视化,帮助初学者快速掌握Stata的核心功能。通过详细的步骤和实用技巧,读者可以高效完成数据处理、变量操作、描述性统计和回归分析等任务,提升数据分析效率。

weixin_28327051的博客 384

Vue使用svg-sprite-loader自动引入svg图标 [自己遇到的问题解决]

我使用的vue + ts. 内容中包含ts 和 js 两个版本的代码.写完之后发现写的可能有些啰嗦 ????我的项目目录现在未配置之前使用 svg1. 安装 [svg-sprite-loader](#https://www.npmjs.com/package/svg-sprite-loader)2. 在 `vue.config.js` 中配置 `svg-sprite-loader`vue.config.js 配置配置之后再可以查看是否配置成功3. 配置自动引入svg, 配置完成之后只需要下载svg -&g

bao 2857

1.用Python写了一个进销存管理的软件~需求分析&界面设计&数据库设计&技术路线选择~

前端也打算用Python来写,查了很多的python库,大家比较推荐的是wxpython和QPython,之前接触过一点点的QT,确实非常强大,但是库比较重量级,自己写的这个东西明显配不上QT,又详细调研了一下wxpython,就是它了!

pepper_lihui的专栏 4323

后台页面开发使用svg-sprite-loader以及本地Icon使用的一些问题

在这个报错中原因是没有找到svg-sprite-loader的包,检查后发现没有安装在根目录导致在package.json中没有显示,在cd到根目录之后在进行npm install。发现在使用了loader之后还是不能显示出正常的icon图标。检查代码发现原来是在JS文件中对于的代码写错。

m0_55947892的博客 653

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 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")

Vue使用svg图标 | uniapp使用svg图标 (以及解决配置了svg-sprite-loader但还是不显示svg图标的问题)

Vue自定义icon-svg组件 uniapp自定义iconfont组件 打开 https://www.iconfont.cn/ 阿里巴巴图标库,找到需要的图标添加到购物车

坚信万物皆可切的切图仔 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

vue-cli3 使用svg-sprite-loader的使用

1.为什么使用svg-sprite-loader? 用来根据导入的svg文件自动生成symbol标签并插入html,接下来就可以在模板忠方便地使用svg-sprite技术了 通常我们项目都是使用iconfont阿里巴巴图标矢量库,缺点: 操作繁琐,每次ui需要加一些新的图标的时候,都要重新下载图标库的项目,然后把整体的文件(其中包括css,svg,ttf,woff等)替换掉。 如果更改名称的...

maggie_live的博客 3069

Vue学习-1(11)使用svg-sprite-loader引入icon

icon从精灵图->svg iconfont.cn下载svg 引入svg过不了ts检查 wp添加svg-sprite-loader yarn add svg-sprite-loader -D vue添加svg-sprite-loader const path = require('path'); module.exports = { lintOnSave: false, chainWebpack: config =>{ const dir = path.

hell_csdn的博客 227

electron-vue使用svg图标

通过svg-sprinter-loader实现electron-vue内使用svg图标

前端开发 1993

Nuxtjs 项目使用 svg-sprite-loader 更改 svg 的颜色

由于一些原因,最新的公司项目要使用的技术切换到了Nuxt.js,也就是Vue的 ssr 服务端渲染框架。使用会让你的svg引入写起来非常的舒服,可以随意修改其颜色,就是配置起来稍稍麻烦一点。但对比开发体验来说,这点时间花费,是完全值得的!为大家准备了一个前端资料包。包含54本,2.57G的前端相关电子书,《前端面试宝典(附答案和解析)》,难点、重点知识视频教程(全套)。

老司机的后备箱 1716

Vue SVG Typescript

参考链接: https://juejin.cn/post/6844903697999200263https://juejin.cn/post/6844903697999200263 第一步:安装插件 npm install svg-sprite-loader 第二步:封装组件 SvgIcon.vue[在components/icon目录下] <template> <svg :class="svgClass" aria-hidden="true"> <use :x

小菜张的博客 855

SVG图标,SVG symbols,SVG use标签

SVG图标,SVG symbols,SVG use标签

芝芝为荔枝 2004

在vue-cli3项目中使用svg-sprite-loader

使用svg-sprite-loader好处 我用vue-cli3.0 + elementUI 搭建项目,但是elementUI的icon组件提供的图标并不是很齐全,当我需要其他图标的时候,我是切图呢还是用iconfont呢? 使用切图图片,没有办法自定义改变图标大小和颜色 使用iconfont图标,需要先注册账号,这时候如果公司有统一的账号管理还好,万一没有,需要开发者自己创建账号管理,以后离职了,怎么维护是个问题。 后来,在vue-admin-template框架中看到有使用svg-sprit

江湖行骗老中医 917

Vue中使用svg

1、下载插件svg-sprite-loader: npm i svg-sprite-loader --save 2、写一个Svglcon的组件 (components/Svglcon),在components目录下新建一个SvgIcon文件夹,然后再新建一个index.vue文件,如: 3、index.vue文件内容为: <template> <svg :class="svgClass" aria-hidden="true"> <use :xlink:href=

sxj的专栏 3980

vue配置svg,图标显示不出来

在vue中配置处理svg文件,结果图标显示不出来也不报错 正常的应该如下图,shadow-root下面还有dom节点: 根据网上的步骤 https://www.cnblogs.com/luoxuemei/p/12154835.html 重新检查配置的步骤,发现没有问题 解决: 如果碰到这个问题,直接把关于svg这段的配置全部删掉 如果问题依旧,浏览器也不会报错,则可以确定是整个vue.config.js文件没有生效,检查配置前的代码是否有问题造成了堵塞(代码往后执行不下去) 本人

qq_35119405的博客 2万+

在 Vue 中使用 svg

在vue中使用 svg 有两种方式: 1、使用本地的svg 2、把本地的 svg 上传到 iconfont中,统一去色生成 symbol 格式的文件引入 一、要使用 svg 先安装对应的 loader npm install svg-sprite-loader 然后在 vue.config.js 里面对 .svg 结尾的文件使用对应的 loader module.exports = { /* svg 相关配置 */ chainWebpack: config => {

MFWSCQ的博客 2万+
上一篇: express cros post 跨域
下一篇: 我觉得创业需要的品格素养
拿我格子衫来
拿我格子衫来 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄10年 6万+粉丝 858原创
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿我格子衫来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值