vue项目打包之后页面空白解决办法

之前项目遇到个情况,npm run build打包之后上传到服务器后,index.html打开一片空白,资源都加载了,但是就是不显示。

然后百度找了原因,修改了两处地方

一、修改 assetsPublicPath 

在config/index.js里面,有个 assetsPublicPath 属性,源码是‘/’,修改成‘./’,加个点

assetsPublicPath: '/',
二、路由模式将histroy改成hash模式,起初 mode:'history'

const router = new Router({
base: '/',
mode: 'hash',
routes: ROUTES
})
那么vue-router的hash模式和histroy模式有什么区别呢?

1、hash模式url带#,histroy模式url不带#

2、hash模式解决了通过http请求来切换页面,改变路径可以直接改变页面,无需进行网络请求,这叫前端路由,在hash模式下改变的是#中的信息,

      history模式,可以前进和后退,但是不能刷新页面,刷新之后就会报错。如果后端没有对路由地址进行相应的处理,那么就会报404的错。

3、hash浏览器支持率比较好,支持低版本的浏览器,但history的方法只支持部分浏览器。
vue中获取url参数
1、路由获取

this.delivery_asn = this.$route.query.delivery_asn;

2、非路由获取

(1)在js文件中写方法

export function getUrlKey(name,url){
  return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(url) || [, ""])[1].replace(/\+/g, '%20')) || null

}

(2)在项目文件中引入

     import { getUrlKey } from '@/utils';

(3)在项目文件中使用

  this.delivery_asn  = getUrlKey("delivery_asn ",window.location.href)

 

 

 如果url中参数base64编码

  let path = window.location.href.split("?") //分割url
  let href = path[0]+"?"+path[1]
  let query = Base64.decode(path[1])  //解码
  href = path[0]+"?"+ query //解码后重组

  this.delivery_asn  = getUrlKey("delivery_asn ",href)

 

你可能感兴趣的:(vue项目打包之后页面空白解决办法)