vue打包后出现空白,请求不到js数据问题
可能是路由模式有问题
如果路由模式是hash模式,头部携带#,则publicPath: "./"
如果路由模式是history模式,头部不携带#,则 publicPath: "/"
hash模式直接读取相对路径中的index;
history读取根路径/,多次点击时不会叠加路径
区别
1.hash 就是指 url 尾巴后的 # 号以及后面的字符,history没有底带#,外观上比hash 模好看些
hash模式中的#相当于读取一个锚点链接,而history主要是读取主域名后面的参数也是相当于描点但是为了好看去除掉了链接上的#
例:taobao.com是主域名,taobao.com/#list 这时锚点到当前list的位置,再去请求相应的js和css
2. 在hash模式下,前端路由修改的是#中的信息,而浏览器请求时不会将 # 后面的数据发送到后台。但是在history下,你可以自由的修改path,当刷新时,如果服务器中没有相应的响应或者资源,则会刷新出来404页面。
3. hash 能兼容到IE8, history 只能兼容到 IE10;
为什么用history模式需要后端进行相应的重写规则?
因为history模式中,头部链接是以/模式进行,而后端配置路由一般是由Nginx代理的,例如:taobao.com/list ,Nginx只会判断你有没有list这个文件夹,没有则会直接给出404页面,所以需要后端做相应的重写规则
网友评论