vue预渲染插件 prerender-spa-plugin(seo优化,生成多页面)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue预渲染插件 prerender-spa-plugin(seo优化,生成多页面)相关的知识,希望对你有一定的参考价值。

参考技术A

vue等框架打包的项目一般为SPA应用,而单页面是不利于SEO的,现在的解决方案有两种:

注意:

然后在webpack.prod.conf.js里面添加:

在webpack.prod.conf.js的plugins里面添加:

最后在main.js里面修改:

安装:

在main.js引入:

在vue页面中配置:

Vue CLI 3 预渲染水疗插件

【中文标题】Vue CLI 3 预渲染水疗插件【英文标题】:Vue CLI 3 prerender-spa-plugin 【发布时间】:2019-06-12 11:53:02 【问题描述】:

我尝试使用带有 Vue CLI 3 的 npm 包 prerender-spa-plugin 预渲染我的 SPA 的路由,运行“npm run build”后我得到了一个不错的输出,如下所示:

index.html 中的输出是一个错误:

<html>

<head>
</head>

<body>Html Webpack Plugin:
  <pre>  ReferenceError: BASE_URL is not defined
  
  - index.html:96 
    C:/Users/Fred/v2/public/index.html:96:11
  
  - index.html:99 0971.module.exports
    C:/Users/Fred/v2/public/index.html:99:3
  
  - index.js:284 Promise.resolve.then
    [v2]/[html-webpack-plugin]/index.js:284:18
  
  </pre>
</body>

</html>

我的 vue.config.js 是这样的:

const path = require('path');
const PrerenderSPAPlugin = require('prerender-spa-plugin');
var HtmlWebpackPlugin = require('html-webpack-plugin');


module.exports = 
    configureWebpack: 
        plugins: [
            new HtmlWebpackPlugin(
                template: './public/index.html',
                inject: false
            ),
            new PrerenderSPAPlugin(
                staticDir: path.join(__dirname, './dist'),
                routes: ['/', '/om-guldbaek', '/om/:id', '/aktiviteter', '/aktivitet/:id', '/foreninger', '/forening/:id', '/begivenheder', '/begivenhed/:id', '/gdpr', '/institutioner', '/institution/:id', '/login', '/nyheder', '/nyhed/:id', '/kontakt', '/registreringer'],
            )
        ],
    ,
;

当我在 VSCode 中运行“npm run build”时,它会不断返回“Building for production...”,而没有任何事情发生。有人知道这个问题吗?

【问题讨论】:

【参考方案1】:

好的,我找到了问题。在 index.html 我有一行:

&lt;link rel="icon" href="&lt;%= BASE_URL %&gt;favicon.ico"&gt;

现在解决了

【讨论】:

以上是关于vue预渲染插件 prerender-spa-plugin(seo优化,生成多页面)的主要内容,如果未能解决你的问题,请参考以下文章

vue预渲染插件 prerender-spa-plugin(seo优化,生成多页面)

vue-cli3.0预渲染

vue项目使用 prerender-spa-plugin 预渲染

vue-cil 服务端预渲染 prerender-spa-plugin

webpack5, vue3,vue-cli5 使用 prerender-spa-plugin 预渲染

如何预渲染多个 Vue 应用页面?