爲什麼使用prerender-spa-plugin?
緣由在於單頁面SPA首頁白屏時間長,不利於SEO優化的問題。
目前主流的解決方案:服務端渲染SSR和預渲染技術prerender-spa-plugin。javascript
1.咱們默認是建立的create-react-app項目,具體教程百度便可。
2.安裝:html
npm install prerender-spa-plugin --save
複製代碼
3.配置:
config-overrides.js
中配置:vue
const PrerenderSPAPlugin = require('prerender-spa-plugin');
const path = require('path');
module.exports = (config, env) => {
if (env === 'production') {
config.plugins = config.plugins.concat([
new PrerenderSPAPlugin({
routes: ['/','/home'],
staticDir: path.join(__dirname, 'build'),
}),
]);
}
return config;
};
複製代碼
其中的routes就是你想要配置的路由列表。java
4.router路由須要採用BrowserRouter,否則打包後每一個頁面都是同樣的預渲染界面。react
5。運行npm run build
,看一下生成的 dist 的目錄裏是否是有每一個路由名稱對應的文件夾。而後找個 目錄裏 的 index.html 就有預渲染好的dom了。這裏推薦你們一個插件serve
,npm install serve
,這樣你輸入命令serve -s dist
就能夠啓服務了。很方便。nginx
若是沒有設置預渲染的頁面,在刷新頁面後會先閃一下首頁,而後再顯示咱們調轉的路由。此時給你們提供一個思路,就是須要建兩個預渲染頁面a.html(首頁),b.html(loading菊花圖),若是是首頁就跳轉a.html,若是是沒有配置預渲染頁面的就用b.html,這就須要nginx配置了。git
這裏有react,vue,angular的配置:github.com/chrisvfritz…github