Vuetify 图标显示不正确:它们显示为“$vuetify.icons...”
Vuetify icons not showing correctly: they appear as as "$vuetify.icons..."
我遇到 Vuetify 中的图标无法正确显示的问题,例如下面是 Vuetify expansion panel. I already tried the solutions in this question ,但它们对我不起作用。您可以在下方看到人字形向下图标显示为 $vuetify.icons.expand
。我已经尝试过导入 @mdi/font 这对我没有任何作用......这是我正在使用的代码:
import Vue from 'vue'
import Vuetify from 'vuetify';
import 'vuetify/dist/vuetify.min.css'
// import 'material-design-icons-iconfont/dist/material-design-icons.css'
import '@mdi/font/css/materialdesignicons.css'
Vue.use(Vuetify, {
icons: {
iconfont: 'mdi'
}
});
//expansion panels
导入material-design-icons-iconfont/dist/material-design-icons.css
,将图标更改为一些奇怪的图标。
请告诉我可能是什么问题以及我还能尝试什么!
假设您使用的是 Vuetify 2...
我认为您缺少的关键是将 Vuetify 传递给 Vue 构造函数,如下所述:
https://vuetifyjs.com/en/getting-started/quick-start#bootstrapping-the-vuetify-object
像这样:
new Vue({
vuetify: new Vuetify(),
// ... all the other stuff you're currently passing
如果要配置字体,则需要将其传递给 Vuetify
构造函数,而不是 Vue.use
。例如
const vuetify = new Vuetify({
icons: {
iconfont: 'mdi'
}
})
new Vue({
vuetify,
// ... all the other stuff you're currently passing
mdi
无论如何都是默认图标集,因此如果您想使用该字体,则无需执行此操作。
您导入 CSS 的方式似乎是正确的。如果您没有做对,您应该会看到错误。
当前文档在此处:https://vuetifyjs.com/en/customization/icons。在撰写本文时,它适用于 2.1.0 版。请注意不要将 Vuetify 2 所需的配置与 1.5 混淆,尽管有一些相似之处,但它们有很大的不同。您还需要清楚,有两种名称非常相似的字体,一种使用 iconfont: 'mdi'
配置,一种使用 iconfont: 'md'
配置。两者都根据上下文在名称中使用单词 'Material'、'Design' 和 'Icons'。
OP 编辑
我不能把它放在评论中,所以我想我会编辑答案。这就是最终对我有用的东西:
// src/plugins/vuetify.ts
import Vue from 'vue'
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.min.css';
import '@mdi/font/css/materialdesignicons.css'
Vue.use(Vuetify);
const vuetify = new Vuetify({
icons: {
iconfont: 'mdi'
}
});
export default vuetify
然后在我使用 Vue 的其他文件中:
// other_file.ts
import vuetify from './plugins/vuetify';
new Vue({
vuetify,
// ...other stuff...
})
我遇到 Vuetify 中的图标无法正确显示的问题,例如下面是 Vuetify expansion panel. I already tried the solutions in this question $vuetify.icons.expand
。我已经尝试过导入 @mdi/font 这对我没有任何作用......这是我正在使用的代码:
import Vue from 'vue'
import Vuetify from 'vuetify';
import 'vuetify/dist/vuetify.min.css'
// import 'material-design-icons-iconfont/dist/material-design-icons.css'
import '@mdi/font/css/materialdesignicons.css'
Vue.use(Vuetify, {
icons: {
iconfont: 'mdi'
}
});
//expansion panels
导入material-design-icons-iconfont/dist/material-design-icons.css
,将图标更改为一些奇怪的图标。
请告诉我可能是什么问题以及我还能尝试什么!
假设您使用的是 Vuetify 2...
我认为您缺少的关键是将 Vuetify 传递给 Vue 构造函数,如下所述:
https://vuetifyjs.com/en/getting-started/quick-start#bootstrapping-the-vuetify-object
像这样:
new Vue({
vuetify: new Vuetify(),
// ... all the other stuff you're currently passing
如果要配置字体,则需要将其传递给 Vuetify
构造函数,而不是 Vue.use
。例如
const vuetify = new Vuetify({
icons: {
iconfont: 'mdi'
}
})
new Vue({
vuetify,
// ... all the other stuff you're currently passing
mdi
无论如何都是默认图标集,因此如果您想使用该字体,则无需执行此操作。
您导入 CSS 的方式似乎是正确的。如果您没有做对,您应该会看到错误。
当前文档在此处:https://vuetifyjs.com/en/customization/icons。在撰写本文时,它适用于 2.1.0 版。请注意不要将 Vuetify 2 所需的配置与 1.5 混淆,尽管有一些相似之处,但它们有很大的不同。您还需要清楚,有两种名称非常相似的字体,一种使用 iconfont: 'mdi'
配置,一种使用 iconfont: 'md'
配置。两者都根据上下文在名称中使用单词 'Material'、'Design' 和 'Icons'。
OP 编辑
我不能把它放在评论中,所以我想我会编辑答案。这就是最终对我有用的东西:
// src/plugins/vuetify.ts
import Vue from 'vue'
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.min.css';
import '@mdi/font/css/materialdesignicons.css'
Vue.use(Vuetify);
const vuetify = new Vuetify({
icons: {
iconfont: 'mdi'
}
});
export default vuetify
然后在我使用 Vue 的其他文件中:
// other_file.ts
import vuetify from './plugins/vuetify';
new Vue({
vuetify,
// ...other stuff...
})