1.众所周知单页面应用不利于SEO,为了解决这个问题 var PrerenderSpaPlugin = require('prerender-spa-plugin')
预渲染在构建阶段就已经生成了匹配预渲染路径的html文件,你的每个路由都可以作为入
口文件,预渲染后其对应文件夹下都有一个index.html,作为路口文件,之后在跳转走的
是前端路由,并不再请求html文件。首屏预渲染对还需要请求易变数据的页面不太合适,
因为展示的html很可能是上次预渲染的html,等到请求完毕返回数据后再展示最新的html
会引起客户的误解和疑惑。让你配路由是因为,若你一开始访问的不是首页,是其他路由,
那么请求其他路由下已经预渲染好的index.html,否则如果不做预渲染,会请求你的根节
点的index.html,再根据路由匹配,链到你请求的路由下的页面
可以配置代理的
plugins: [
new PrerenderSPAPlugin({
//将渲染的文件放到dist目录下
staticDir: path.join(__dirname, "../../server/dist"),
//需要预渲染的路由信息
routes: ["/products"],
//在一定时间后再捕获页面信息,使得页面数据信息加载完成
captureAfterTime: 50000,
server: {
proxy: {
"/api": {
target: "http://localhost:9018",
secure: false
}
}
},
renderer: new Renderer({
renderAfterDocumentEvent: "render-done",
headless: false
})
})
]
复制代码