Vue SSR 项目 Nuxt.js 框架之《设置mate与定义化html模板》

html-css010

Vue SSR 项目 Nuxt.js 框架之《设置mate与定义化html模板》,第1张

在做一些SEO的时候,一般会设置meta信息,或者做移动端项目的时候会设置一下视口等。我们一起看下在 nuxt 中如何设置 meta 和 head 内容的,以及如何定义化 html 模板。

重启后查看源码就可以看到我们设置的 head 信息了~~

页面个性化设置的时候,需要在页面里写入 head 函数并返回一个对象,如下:

这样就完成了每个页面的个性化的 meta 等一些 head 信息

每个页面的个性化设置 head 信息可以每个页面都写一个 head 函数去设置,但显得臃肿也不利于维护。我们可以在 plugins 的 mixins 文件里混入一个全局方法,每个页面去调用,以此来实现个性化的 meta 信息设置。

混入后,每个页面使用如下:

处理以上提到的设置 head 信息的方式,还可以通过定义化 html 模板来实现,但需要遵循nuxt的一些规则,比如:名称必须为 app.html ,而且必须用 双花括号 获得已设置的信息等,如下:

metinfo.cn/product/ 响应式网站模板,不妨到这一看。我喜欢用这个网站的原因是他的很多模板都是免费的,最主要的一点是,这个网站的页面非常的好看,对于我这个非常喜欢完美的人来说,这个网站满足了我对模板的需求。

这种模板很多的,百度打开一个网页右键源代码就能找到了。

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

<meta name="viewport" id="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">

<meta name="apple-mobile-web-app-capable" content="yes">

<meta name="apple-mobile-web-app-status-bar-style" content="black">

<link href="{dede:global.cfg_templets_skin/}/images/apple-touch-icon-57.png" sizes="57x57" rel="apple-touch-icon">

<link href="{dede:global.cfg_templets_skin/}/images/apple-touch-icon-72.png" sizes="72x72" rel="apple-touch-icon">

<link href="{dede:global.cfg_templets_skin/}/images/apple-touch-icon-114.png" sizes="114x114" rel="apple-touch-icon">

<title>{dede:global.cfg_webname/}</title>

<meta name="keywords" content="{dede:global.cfg_keywords/}">

<meta name="description" content="{dede:global.cfg_description/}">

<link href="{dede:global.cfg_templets_skin/}/style/style.css" rel="stylesheet" type="text/css">

<script type="text/javascript" src="{dede:global.cfg_templets_skin/}/style/jquery-1.9.1.js"></script>

<script type="text/javascript" src="{dede:global.cfg_templets_skin/}/style/theme_trust.js"></script>

<style type="text/css">

html,

body {

margin: 0

padding: 0

}

.iw_poi_title {

color: #CC5522

font-size: 14px

font-weight: bold

overflow: hidden

padding-right: 13px

white-space: nowrap

}

.iw_poi_content {

font: 12px arial, sans-serif

overflow: visible

padding-top: 4px

white-space: -moz-pre-wrap

word-wrap: break-word

}

</style>

<script type="text/javascript" src="{dede:global.cfg_templets_skin/}/main.js"></script>

<script>

jQuery(document).ready(function() {

jQuery('#openSidebar').click(function() {

jQuery('.wrapper').toggleClass('openNav')

})

jQuery('#menu a').click(function() {

jQuery('.wrapper').removeClass('openNav')

})

})

</script>

<script type="text/javascript" src="{dede:global.cfg_templets_skin/}/api"></script><script type="text/javascript" src="{dede:global.cfg_templets_skin/}/getscript"></script><link rel="stylesheet" type="text/css" href="{dede:global.cfg_templets_skin/}/bmap.css">

<style type="text/css">

html,

body,

wrapper {

height: 100%

}

</style>

</head>

<body>

<div class="wrapper">

<div class="sidebar">

<div class="clearfix k1120">

<div class="navBox" id="openSidebar">

<a href="javascript:void(0)" class="navOpen"></a>

</div>

<div id="menu">

<ul class="clearfix">

<li><a href="#home" class="nav_home current"><span>首页<br /><b>Home</b></span></a>

</li>

<li><a href="#services" class="nav_services"><span>服务范围<br /><b>Services</b></span></a>

</li>

<li><a href="#case" class="nav_case"><span>案例展示<br /><b>Case</b></span></a>

</li>

<li><a href="#about" class="nav_about"><span>关于我们<br /><b>About us</b></span></a>

</li>

<li><a href="#news" class="nav_news"><span>新闻动态<br /><b>News</b></span></a>

</li>

<li><a href="#contact" class="nav_contact"><span>联系我们<br /><b>Contact us</b></span></a>

</li>

</ul>

</div>

</div>

</div>

<div class="pageMain">

<div id="header">

<div class="k1120 clearfix"><a href="{dede:global.cfg_basehost/}" id="logo">logo</a>

</div>

</div>

<div id="home" class="scrol-page">

<div class="banner">

<div class="b_1" style="background-position: 50% 0px">

<div class="k1120 clearfix">

<div class="b_pic">

<div class="mac" style="margin-top: 0pxopacity: 1"><img src="{dede:global.cfg_templets_skin/}/images/mac.png">

</div>

<div class="iphone" style="margin-top: 0pxopacity: 1"><img src="{dede:global.cfg_templets_skin/}/images/iphone.png">

</div>

<div class="ipad" style="margin-top: 0pxopacity: 1"><img src="{dede:global.cfg_templets_skin/}/images/ipad.png">

</div>

</div>

<div class="b_text" style="margin-top: 0pxopacity: 1">

{dede:global.cfg_ggg/}

</div>

</div>

</div>

</div>

<div class="banner">