Vue 项目静态化打包 seo优化

本文介绍了如何使用prerender-spa-plugin和vue-meta-info这两个包,实现Vue项目的静态化打包,以优化SEO。在main.js中引入并配置Vue,结合vue-meta-info管理页面元信息。然而,这种方法不适用于动态路由值和API数据请求的场景,仅适合于静态内容的宣传页项目。
摘要由CSDN通过智能技术生成

主要是这两个包,实现静态化打包
require(‘prerender-spa-plugin’);
import MetaInfo from ‘vue-meta-info’
不足点:路由动态传值 ,请求api获取数据,不能打包出静态化,在路由组件创建前调用接口,并且数据绑定模版上可以打包静态结构代码,适用于宣传页项目开发,动态数据完全受限无法满足需求

prerender-spa-plugin使用注意⚠️ 在main.js 入口文件 创建Vue 添加

new Vue({
  router,
  render: h => h(App),
  mounted() {
    document.dispatchEvent(new Event('custom-render-trigger'))
  }
}).$mount('#app')

vue-meta-info 使用

//全局注册
import MetaInfo from 'vue-meta-info'
Vue.use(MetaInfo)

路由组件使用
export default {
  metaInfo: {
        title: window.logoName + 'abort',
        meta: [
            {
                name: 'keywords',
                content: '关键字2,关键字2,关键字2'
            },
            {
                name: 'description',
                content: '这是一段网页的描述2'
            }
        ]
    },
  data() {
    return {},
  },
  created(){},
  //...

webpack配置完整代码

const path = require('path');

const CompressionPlugin = require('compression-webpack-plugin')

// npm run build后,打开localhost:8888,项目结构
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

const PrerenderSPAPlugin = require('prerender-spa-plugin');
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;

const debug = process.env.NODE_ENV === "production"

function resolve(dir) {
    return path.join(__dirname, dir)
}

module.exports = {
    lintOnSave: false,
    runtimeCompiler: true, // 关键点在这
    pluginOptions: {},
    publicPath: "./", // ./改为/
    outputDir: "server/dist",
    // assetsDir: "static",
    indexPath: "index.html",
    productionSourceMap: false,
    filenameHashing: true,
    css: {
        loaderOptions: {
            sass: {
                prependData: `@import "
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值