赞
踩
前言:最近做了一个官网项目,框架选择的vue,开发完上线之后发现不被百度收录,关键词和描述也只能抓取到首页的,今天来分享下最后是怎么解决的。
先说一下传统页面和框架开发的区别
想具体了解单页面应用和多页面应用区别的自行百度下这里先不多说了哈
说下两种解决方案的区别各自根据开发需求选择解决方案:
第一种:
SSR:服务端渲染(Server Side Render),即:网页是通过服务端渲染生成后输出给客户端。比如JSP、PHP、JavaWeb等都是SSR架构,也就是服务端取出数据和模板组合生成 html 输出给前端,前端发生请求时,重新向服务端请求 html 资源,路由也由服务端来控制。
第二种:
预渲染:它只在构建时为了特定的路由生成特定的几个静态页面,等于我们可以通过 Webpack 插件将一些特定页面组件 build 时就编译为 HTML 文件,直接以静态资源的形式输出给搜索引擎。
今天说下预渲染解决方案的具体使用:
cnpm install prerender-spa-plugin --save
const PrerenderSPAPlugin = require('prerender-spa-plugin'); const Renderer = PrerenderSPAPlugin.PuppeteerRenderer; const path = require('path'); module.exports = { configureWebpack: config => { if (process.env.NODE_ENV !== 'production') return; return { plugins: [ new PrerenderSPAPlugin({ staticDir: path.join(__dirname, 'dist'), routes: ['/', '/cityDetail', '/footer', '/nav', '/partner', '/teacher', '/contact', '/site', '/product', '/aboutus', '/ingclass', '/ideaTheory', '/idea', '/train', '/childrenrecovery', '/patriarch'], renderer: new PrerenderSPAPlugin.PuppeteerRenderer({ renderAfterTime: 5000 }) }) ], }; } }
new Vue({
router,
store,
render: h => h(App),
mounted () {
document.dispatchEvent(new Event('render-event'))
}
}).$mount('#app')
然后执行你的打包命令
如上图打包出来像我一样每个页面都有自己的文件夹并对应自己的页面index就完成了,这样就把单页面打包成了多页面
总结
每个框架都有他自己对应的ssr方案,今天这里提到了vue的,有心的童鞋可以自行查阅其他框架方面的
再说几点关于seo方面的小技巧
end~~~
如有错误或观点不一致的请评论留言共同讨论,本人前端小白一枚,根据自己实际项目遇到的问题进行总结分享,谢谢大家的阅读!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。