当前位置:   article > 正文

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

直接访问index.html白屏

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

publicPath:"./"
  • 1

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

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

var router = new Router({
mode: 'history'
})
  • 1
  • 2
  • 3

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;

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/258834
推荐阅读
相关标签
  

闽ICP备14008679号