去除 nuxt.js 框架下的 window.__NUXT__
问题描述:
nuxt.js 框架建设网站,在网站页面点击查看 查看网页源代码,就会发现源代码里面有一串这样的代码window.__NUXT__=(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,$,aa, ..... 后续代码太多,此处省略1万字,里面存储的信息是Vuex 中的数据
我想要的结果:
不想让 window.__NUXT__=.... 出现在我的网页源代码中,不美观,累赘,多余,可能会影响SEO
问题解决:
修改渲染页面的源代码
nuxt版本:2.7.1
修改文件路径: \node_modules\nuxt\node_modules@nuxt\core\node_modules@nuxt\vue-renderer\dist\vue-renderer.js
修改代码如下:
// 注释代码1, 禁止在页面初始化时添加window.__NUXT__代码
APP += `<script>${serializedSession}</script>`;
// 注释代码2 禁止在页面路由改变时更新window.__NUXT__代码
hash.update(serializedSession);
cspScriptSrcHashes.push(`'${csp.hashAlgorithm}-${hash.digest('base64')}'`);
// 注释代码1, 禁止在页面初始化时添加window.__NUXT__代码 APP += `<script>${serializedSession}</script>`; // 注释代码2 禁止在页面路由改变时更新window.__NUXT__代码 hash.update(serializedSession); cspScriptSrcHashes.push(`'${csp.hashAlgorithm}-${hash.digest('base64')}'`);
备注:
不知道这样做有没有其他的副作用,暂时我还没发现,等发现了后续再更新
更新:2019/09/05
1、副作用一
今天查看Nuxt.js 官方文档,发现一个新的问题,如果在服务器端使用beforeNuxtRender 和 nuxtState这个方法,应该是会出现问题:
2、副作用二:
在服务器端,存储在store中的数据会出现取值问题
我的项目中,在nuxtServerInit 函数中存储在store中的数据,在客户端会出现获取不到值的问题