nginx配合vue-cli的多页面配置

2,034 阅读1分钟

vue-cli部分

在vue.config.js添加一下pages,配置动态的入口。然后修改下dev.script.js。就可以在跑项目的时候,根据你指定的项目名称,跑指定的入口main.js文件。网上很多关于怎么把单页面改成多个单页面的教程,配置很简单。

我的文件目录是这样的

编译之后是这样的

nginx配置

页面编译之后就开始部署了,但由于nginx的root是指向dist,但vue-router的根目录是小项目所在的文件夹,所以官方的配置就会导致try_files无法准确定位到项目的index.html。当你在打开长一点的路由时,项目会报404或者500.

一种解决方案就是每次有新的项目,修改一次nginx的配置,我觉得太麻烦,希望能无限添加项目,并且不需要重新修改nginx。

我尝试通过过滤路由的方式动态的修改try_files的指定index.html。但不知道为什么,文件名已经拿到了,就是不能动态匹配。最后尝试用rewrite重定向

重定向前先判断一下,除了图片和文件,其他重定向到项目下的index.html,其他的就交给vue-router。

有更好的方法欢迎交流