去除 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中的数据,在客户端会出现获取不到值的问题

posted @ 2019-10-10 16:26  G善源  阅读(2307)  评论(0编辑  收藏  举报