問題描述:
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中的數據,在客戶端會出現獲取不到值的問題