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

下面是详细的“Vue项目部署到IIS后刷新报错404的问题及解决方法”的攻略:

问题描述

在将Vue项目部署到IIS中后,如果在非首页路由下刷新页面,将会出现404错误。原因是IIS对于router的path不识别,需要进行相应的设置。

解决方法

1.在项目根目录下创建web.config文件,内容如下(新版Vue CLI生成的项目中已有该配置文件):

<?xml version="1.0"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Handle History Mode">
          <match url=".*" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

2.在vue.config.js中进行页面路径配置:

module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
  outputDir: 'dist',
  assetsDir: 'assets',
  indexPath: 'index.html',
  filenameHashing: true,
  devServer: {
      ...
  }
}

3.在路由文件中设置base路径

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    component: About
  }
]

const router = new VueRouter({
  mode: 'history',
  base: '/dist/',//网站目录
  routes
})

示例说明:

假设我们有一个Vue项目,项目名为vue-demo,项目输出打包后的文件夹名为dist,现在需要将该项目部署到IIS根目录,路径为http://localhost:8001/。这时候,如果直接访问首页,是没有问题的,但如果访问http://localhost:8001/about,就会出现404错误。

首先,我们需要在项目根目录下创建web.config文件,并在文件中写入如上面代码所示的内容,用于配置IIS服务器。

然后,在vue.config.js中进行页面路径配置,确保输出的页面文件名和路径都正确。

最后,在路由文件中配置base路径,指向部署后的目录,这样路由就能正常的被识别,刷新也不会出现404错误了。

希望这个回答能够帮到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue项目部署到IIS后刷新报错404的问题及解决方法 - Python技术站

(1)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 解决angularjs service中依赖注入$scope报错的问题

    在AngularJS中,$scope是一个非常重要的概念,它用于在控制器和视图之间传递数据。在AngularJS的服务中,如果依赖注入$scope可能会导致报错。以下是解决该问题的攻略包含两个示例: 解决AngularJS服务中依赖注入$scope报错的问题 在AngularJS的服务中,如果依赖注入,会导致报错。以下是解决该问题的攻略: 方案1:使用con…

    http 2023年5月13日
    00
  • HTTP请求出现500错误的原因是什么?

    HTTP 500错误(Internal Server Error)是一种常见的HTTP状态码之一。当客户端向服务器发送请求并且服务器无法完成该请求时,会出现HTTP 500错误。下面为您详细讲解HTTP请求出现500错误的原因以及可能的解决方法: 原因 服务器内部错误:导致服务器无法正常处理请求的原因可能是服务器端的脚本出现错误、数据库故障、文件权限不正确或…

    云计算 2023年4月27日
    00
  • HTTP的Cache-Control头部有哪些取值?

    当客户端请求一份资源时,Web服务器会响应相应的“缓存控制头部”,该头部会指示客户端如何处理该资源的缓存。由于缓存非常重要,因此理解缓存的各个头部参数是很重要的。 下面是HTTP的Cache-Control头部的各种取值: public public指示响应可以被任何缓存器缓存,包括旁路缓存(CDN),而不局限于客户端缓存。 private private指…

    Http网络协议 2023年4月20日
    00
  • HTTP跨域访问异常的原因是什么?

    HTTP跨域访问异常是指客户端网页使用XMLHttpRequest或Fetch API发起HTTP请求,请求的目标资源与当前网页的域名不一致,导致出现安全限制,从而无法正常获取到该资源的数据的异常情况。具体原因是由于浏览器的同源策略所导致的。同源策略是现代浏览器的一个重要安全功能,其要求不同域名下的网页之间不能相互读取彼此的数据。只有在相同协议、主机和端口号…

    云计算 2023年4月27日
    00
  • 详解canvas.toDataURL()报错的解决方案全都在这了

    当使用canvas.toDataURL()方法时,有时会遇到报错的情况。以下是解决该问题的攻略,其中包含两个示例: 解决canvas.toDataURL()报错的问题 在使用.toDataURL()方法时,可能会遇到以下报错: SecurityError: The operation insecure. 这通常是由于浏览器安全策略导致的。以下是解决该问题的攻…

    http 2023年5月13日
    00
  • HTTP响应状态码有哪些?

    HTTP 响应状态码表示在客户端向服务器发送请求后,服务器向客户端返回的状态以及相应情况,常见的响应状态码包括以下几种: 1xx:信息类- 100 Continue:表示一切正常,客户端可以继续发送请求。- 101 Switching Protocols:表示服务器在客户端请求的协议和服务器将要发回的协议之间进行了切换。 2xx:成功- 200 OK:表示请…

    Http网络协议 2023年4月20日
    00
  • android上传图片到PHP的过程详解

    下面是“android上传图片到PHP的过程详解”的完整攻略。 简介 在Web开发中,服务器端(常用的有PHP)接收Android客户端上传的图片是一项很常见的任务。本攻略旨在介绍如何用Android客户端将图片上传到服务器端的PHP脚本。 示例 示例一:使用HttpClient实现图片上传 引入以下依赖: implementation ‘org.apach…

    http 2023年5月13日
    00
  • 详解使用 docker compose 部署 golang 的 Athens 私有代理问题

    下面我将为您详细讲解如何使用Docker Compose部署Golang的Athens私有代理。 一、什么是Athens私有代理? Athens是一个适用于Go包的模块代理,类似于Go的默认代理,主要是提供了更高的可用性和预测性,同时还支持私有代理。 Athens主要有两个版本,一个是Python实现的、一个是Golang实现的。这里我们要介绍的是Golan…

    http 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部