.net6+IIS+vue 处理history路由模式下,刷新出404问题

文章讲述了如何将Vue构建的前端应用部署到IIS服务器并与.NET6后台集成。主要步骤包括将Vue的dist文件夹内容放入.NET6的wwwroot目录,以及解决Vue-routerhistory模式下刷新出现404错误的问题,通过安装URL重写模块并配置规则,确保所有非/api/请求重定向到根路径,从而保证页面正确加载。
摘要由CSDN通过智能技术生成

近期做项目希望吧vue做的网站部署到 IIS上和.net6 做的后台集成在一起.

遇到的问题:

一.vue 构建的网页如何在.net6 项目中放置

        方法:1.把vue项目 npm run build 后. 找到生成的文件.默认是在/dist文件夹中.

                

 

                2.在.net6项目中创建文件夹wwwroot文件夹, 创建后会变成这种图标,不变也没关系

 

                3.把dist文件夹中的文件 粘贴到 wwwroot文件夹中

                4.在.net6 的 program.cs 中添加代码

                

结束:.vue项目和.net6就能一起部署,共用一个IIS.

二.由于vue-router的history模式会让浏览器地址栏加后缀,这导致刷新时会出现404错误.

        原因:刷新时浏览器根据地址栏的地址请求服务器,iis中没有找到这个路径对应的接口或文件,所以报错.

        解决方法:

      1.安装 url-rewrite

url-rewrite下载地址       

 

 安装完成后在IIS中会有URL重写功能

2.进入URL重写,添加规则--空白规则.填写相应的规则

 上面这个配置的意思是:当请求的地址中不包含 /api/ 时,重定向到 /..举例:http://127.0.0.1/index/home  这个请求会重定向到 http:127.0.0.1/ 配合代码中的默认页设置.会请求index.html页.浏览器获取后会进行vue-router配置的处理,实现正确的页面刷新.

3.通过配置文件进行设置(需要安装 url rewrite)   在.net6项目中添加web.config 配置文件 修改配置文件为

 

 复制如下代码.正常部署就行.下面的代码和用URL 重写 配置的一样.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
	 
	<system.webServer>
		<handlers>
			<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
		</handlers>
		<aspNetCore processPath=".\WebClient.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
		<rewrite>
			<rules>
				<rule name="自定义名称">
					<match url="/api/" negate="true" />
					<action type="Rewrite" url="/" logRewrittenUrl="true" />
				</rule>
			</rules>
		</rewrite>
	</system.webServer>
</configuration> 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值