Apache2使用Alias设置开启了History模式的Vue项目出现404的解决方案

前言

今天下午同事在部署一个Vue的前端项目的时候,配置过程中遇到了Vue项目一直404的问题。遇到这种情况,怎么能少得了我呢。

初探

在同事跟诉苦之后,我第一反应当然是询问是否开启了History模式,同事答曰是,我立马甩了这篇文章给他Vue项目开启History模式后404的解决方案。经我排查,同事的配置文件中果然没有对VueHistory模式做特殊的处理。于是我按照给他的文章中的解决方案(Apache版)更改了配置文件,添加了如下配置片段:

你以为这就结束了吗?事实上我也是这么认为的。可是只有访问http://example.com/example的时候是能正确访问的,当访问http://example.com/example/action的时候就会一直出现404

再探

经过反复检查,十分确定Alias部分和Directory的权限设置没有问题之后,把目标锁定到了FallbackResource。细心阅读Apache2官方文档FallbackResource说明部分后发现了问题的关键:

fallback-resource-sub-uri

我翻译一下,大致意思就是如果是子路由使用FallbackResource的话,需要如图中一样使用。比如我们这里需要用到的是exampleURI,那么我们的FallbackResource则应该为/example/index.html。终于真相大白,下面给出最终配置:

这件事到这总算告一段落了。

Happy Ending

这件事告诉了我一个道理,不是Apache垃圾,而是我没有用心去读官方文档。不过总的来说,Apache的坑似乎是要比Nginx多上一些,或者说有入门门槛。不说了,我要去恶补文档去了。

这篇文章到这就结束啦,感谢大家的阅读。希望大家能从这篇文章中得到帮助。如果你对这篇文章有任何意见或建议,都欢迎给我发送邮件,优质的文章离不开读者的反馈。