Vue 发布后F5刷新404
这个问题并不是什么大问题,发布过Vue前端项目的童鞋应该都有遇到过。而且网上普遍的教程都没有多大的问题,照着做都可以轻松解决掉。这里进行记录主要是把坑填一填,其次就是表达每个人的思维都是不一样,换个角度去想问题讲不定解决方法就是很清奇的⛲
问题所在
出现这个问题是原因也是很简单的,从返回状态码中也可以看出,访问的资源不存在;
我们每次build完vue项目后,在dist文件夹下,仅仅有一个index.html入口文件,而且vue-router设置的路径并不是真实存在的路径,在刷新时,服务器找不到对应的资源,也就造成了404。
IIS解决方案
IIS URLRewrite vue单页应用程序(history模式) - 简书 (jianshu.com)
其次,我在看同事的一个解决方法时,发现同事的想法挺清奇的:
同事在IIS中使用的是在.NET 错误页中进行配置,配置在404情况下直接跳转 '/',当然这样也是可以实现刷新不会报404 的,这样做,是在服务器报了404后,才会去触发跳转到index.html。当然,这样也会造成我们的程序完全没有404页面,始终都会跳转到index.html。
很多问题都是这样,换个角度果然是不一样的尽管方案并不完美!