vue-cli打包后打开后index.html 文件白屏问题

7 篇文章 0 订阅
2 篇文章 0 订阅

打开 dist index.html 文件发现白屏。打开调试后发现什么也没有,也没有报错。
根据以往的经验如果是文件路径报错,一般在根目录下新建 vue.config.js
配置publicPath就行了,或者直接在vue-ui上的配置文件加个点就好。

publicPath:"./"

各种百度,发现都是叫我配publicPath,但我已经配好了。

百思不得其解,自己慢慢摸索终于发现了问题:
不知道怎么自己的mode变成了history,默认是hash模式

var router = new Router({
mode: 'history'
})

mode

类型: string

默认值: “hash” (浏览器环境) | “abstract” (Node.js 环境)

可选值: “hash” | “history” | “abstract”

配置路由模式:
hash: 使用 URL hash 值来作路由。支持所有浏览器,包括不支持 HTML5 History Api 的浏览器。

history: 依赖 HTML5 History API 和服务器配置。

abstract: 支持所有 JavaScript 运行环境,如 Node.js 服务器端。如果发现没有浏览器的 API,路由会自动强制进入这个模式。

Hash模式:

在浏览器中符合“#”,#以及#后面的字符称为hash,用window.location.hash读取
特点:hash虽然在URL中,但不被包括在HTTP请求中;用来直到浏览器动作,对服务端安全无用,hash不会重新加载页面。
Hash模式下,仅hash符号之前的内容被包含在请求中,如http://www.xxx.com,因此对于后端来说,即使没有做路由全覆盖,也不会返回404错误。

History模式:

Historty采用HTML5新特性,且提供两个新的方法pushState(),replaceState()可以对浏览器历史记录栈进行修改,以及popState事件的监听到状态的变更。
History模式下,前端的URL必须和实际向后端发起请求的URL一致,如http://www.xxx.com/items/id。后端如果缺少对/items/id的路由处理,将会返回404错误。Vue-router官网里如此描述:“不过这种模式要完好,还需要后台配置支持…所以,你要在服务端添加一个覆盖所有情况的候选资源。如果url匹配不到任何静态资源,则应该返回同一个index.html页面,这个页面就是你app依赖的页面。”

如果使用history模式上线,必须要服务端在服务器上有对应的模式才能使用history(看上面链接),如果服务器上没有配置,可以先使用默认的hash;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值