Javascript 在vue.js应用程序中设置视口元标记
为了开发和构建我的项目,我使用Vue CLI 3 在构建我的项目时,默认情况下,它会将这些元标记添加到Javascript 在vue.js应用程序中设置视口元标记,javascript,vue.js,Javascript,Vue.js,为了开发和构建我的项目,我使用Vue CLI 3 在构建我的项目时,默认情况下,它会将这些元标记添加到index.html <meta charset=utf-8> <meta http-equiv=X-UA-Compatible content="IE=edge"> <meta name=viewport content="width=device-width,initial-scale=1"> 但是,对于移动设备,我想将user scalable=n
index.html
<meta charset=utf-8>
<meta http-equiv=X-UA-Compatible content="IE=edge">
<meta name=viewport content="width=device-width,initial-scale=1">
但是,对于移动设备,我想将
user scalable=no
添加到视口
-标记中
如何覆盖这些元标记
和,我没有运气。这些插件只添加元标记,而不是覆盖它们。您使用
vue-meta
的方法是正确的
index.html
文件中静态添加它们vue meta添加它们
vmid
属性设置为某个唯一标识符,这样vue meta
将替换现有meta标记的内容,而不是创建新标记如果您像我一样对动态元标记感兴趣,则需要使用更详细的语法来确保添加带有
属性
(而不是名称)和内容
标记的元标记
我知道最初的问题并没有特别要求这些类型的标签,但我将与大家分享这一点,希望能帮助其他正在寻找答案但无法找到更广泛类型的元标签的人
下面是一个示例,其中传入一个对象数组,而不是单个对象:
config.plugin('html').tap(args => {
args[0].meta = [
{
property: 'og:image',
content: `${environment_url}/images/logos/my_logo.png`,
},
{
property: 'og:image:width',
content: '1200',
},
{
property: 'og:image:height',
content: '1200',
},
];
return args;
});
您可以在单个对象中定义多个元标记(当您使用非数组方法时),但是您将失去对“属性”标记名称的控制
我在本页的示例中找到了这种语法:
可能是错误的,但我相信Vue在项目创建时只添加了一次。如果手动修改
index.html
文件,是否会在以后的开发过程中覆盖该文件?…vue cli使用webpack。因此,您可以通过在vue.config.js
文件的configureWebpack
钩子中提供一个HtmlWebpackPlugin来指定自定义模板。请参阅:“但是,对于移动设备,我想在viewport标记中添加user scalable=no。”-这几乎总是一个糟糕的想法,具有可访问性的含义。确认@War10ck所说的,您可以直接在编辑器中更新index.html
。Vue不会修改此文件,它仅在您启动新项目时创建。您可以直接修改元标记的index.html
文件。
chainWebpack: (config) => {
config
.plugin('html')
.tap(args => {
args[0].title = 'MyApp title';
args[0].meta = {viewport: 'width=device-width,initial-scale=1,user-scalable=no'};
return args;
})
}
config.plugin('html').tap(args => {
args[0].meta = [
{
property: 'og:image',
content: `${environment_url}/images/logos/my_logo.png`,
},
{
property: 'og:image:width',
content: '1200',
},
{
property: 'og:image:height',
content: '1200',
},
];
return args;
});