Vue项目部署到IIS后刷新报错404的问题及解决方法

  • Post category:http

下面我将详细讲解“Vue项目部署到IIS后刷新报错404的问题及解决方法”的完整攻略。

问题背景

当我们将Vue项目部署到IIS上之后,路由切换是正常的,但是刷新页面后就会出现404错误。这是因为在IIS上匹配不到对应的路由路径。

问题解决

解决这个问题,我们需要进行两步处理,分别是:

1. IIS中配置URL Rewrite规则

我们需要在IIS中配置URL Rewrite规则,将所有的请求都指向index.html页面。具体步骤如下:

  1. 打开IIS管理器,选择对应的网站。
  2. 在网站中选择URL Rewrite。
  3. 点击右侧的”添加规则”,选择”空白规则”。
  4. 在规则名称中填写一个名称,如:”重定向至index.html”。
  5. 在匹配模式中填写”(.*)”,表示将所有的请求都匹配到。
  6. 在条件中可以添加一些筛选条件,这里不需要。
  7. 在操作中选择”重写”。
  8. 在重写目标中输入”/index.html”,表示将所有请求都重定向到index.html页面。
  9. 点击”应用”保存配置。

这样配置之后,再在浏览器中刷新页面,就不会再出现404错误了。

2. Vue项目中配置路由的base属性

在Vue项目中,我们需要配置路由的base属性,指定路由的根路径。具体步骤如下:

  1. 打开Vue项目的router.js文件,找到路由配置(即routes属性)的地方。
  2. 在VueRouter()中添加一个base属性,值为当前项目的根路径。一般情况下value为空字符串””,但若你有子路由且访问不了子路由的话,应该在value里写上你项目的相对路径,例如下面示例中的”/demo/”。

javascript
const router = new VueRouter({
mode: 'history',
base: '/demo/',
routes
})

3. 重新构建Vue项目,将build目录下的文件复制到IIS服务器中,即可正常刷新页面。

示例说明

下面给出两个示例,说明进行了上述两个处理之后,问题是怎么解决的。

示例一

  1. 假设我们要部署一个Vue项目到IIS上,项目根路径为”D:/wwwroot/my-project/”。我们可以使用”vue-cli-service build”命令在本地构建一个生产环境的Vue项目,并将build目录下的文件复制到IIS服务器的相应目录下。
  2. 在IIS中配置URL Rewrite规则,将所有的请求都指向index.html页面。
  3. 在Vue项目中配置路由的base属性,指定路由的根路径为”/”,即value为””。

这样处理之后,我们在浏览器中输入”http://localhost/my-project/”,就可以正常访问Vue项目了。

示例二

  1. 假设我们要部署一个Vue项目到IIS上,项目根路径为”D:/wwwroot/demo/”。我们可以使用”vue-cli-service build”命令在本地构建一个生产环境的Vue项目,并将build目录下的文件复制到IIS服务器的相应目录下。
  2. 在IIS中配置URL Rewrite规则,将所有的请求都指向index.html页面。
  3. 在Vue项目中配置路由的base属性,指定路由的根路径为”/demo/”,即value为”/demo/”。

这样处理之后,我们在浏览器中输入”http://localhost/demo/”,就可以正常访问Vue项目了,并且可以刷新页面,不再出现404错误。

总结

以上就是Vue项目部署到IIS后刷新报错404的问题及解决方法的完整攻略。希望能够对你有所帮助。