【Vue】vue在Windows平台IIS的部署

系列文章

【C#】IIS平台下,WebAPI发布及异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126539836

【Vue】vue2与WebApi跨域CORS问题
本文链接:https://blog.csdn.net/youcheng_ge/article/details/133808959

文章目录

  • 系列文章
  • 前言
  • 一、技术介绍
  • 二、前期准备
    • 2.1 安装IIS
    • 2.2 方法一:Vue项目更改(配置代理)
    • 2.3 方法二:Vue项目更改(读配置文件)
      • 2.3.1 创建 config.js文件
      • 2.3.2 引入config文件
      • 2.3.3 使用config参数
    • 2.4 Vue项目打包
  • 三、发布部署
    • 3.1 创建服务目录
    • 3.2 添加网站
    • 3.3 配置URL重写
  • 四、异常问题解决
    • 4.1 外网访问时,浏览器可以进入Vue项目,但是发送请求 接口异常
    • 4.2 接口的IP地址未变更,始终是`http://localhost:19999`
    • 4.3 浏览器首次访问没有问题,然后点浏览器的刷新按钮,报404页面不存在
  • 五、效果展示


前言

本专栏为【前端】,主要介绍前端知识点。
在这里插入图片描述

一、技术介绍

本文介绍前端技术,vue项目在IIS下的发布部署.

二、前期准备

2.1 安装IIS

打开 控制面板–>启用或关闭Windows功能–>Internet information service相关的打钩,FTP服务器不需要,我们自己做文件传输>点击确定
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 方法一:Vue项目更改(配置代理)

vue.config.js文件打开,devServer下增加如下代码:

    proxy: {// 路由代理'/api': {target: "http://192.168.6.6:19999",changeOrigin: true // 如果接口跨域,需要进行这个参数配置},'/prod-api': {target: "http://192.168.6.6:19999",changeOrigin: true, // 如果接口跨域,需要进行这个参数配置pathRewrite:{ '^/prod-api':'' // 重写请求,接口是/api/doc变为/doc}},'/dev-api': {target: "http://192.168.6.6:19999",changeOrigin: true, // 如果接口跨域,需要进行这个参数配置pathRewrite:{ '^/dev-api':'' // 重写请求,接口是/api/doc变为/doc}}}

2.3 方法二:Vue项目更改(读配置文件)

方法一 和 方法二任选一种,我推荐方法二,简单好理解。

首先我们要明白,vue的打包机制,public里的文件是不会被打包的,它会原封不动的放在dist包里,所有我们可以利用这点,将配置参数信息写在里面。

2.3.1 创建 config.js文件

public 目录下,创建 config.js文件,URL地址写里头:

/** 控制打包时,参数的配置* 解决服务器部署,api不变的问题*  baseURL: "http://192.168.6.6:19999",*  baseURL: process.env.VUE_APP_BASE_API* */ 
exports.PLATFROM_CONFIG = {//API调用的服务地址baseURL: 'http://192.168.6.6:19999'// baseURL: 'http://localhost:19999'
}

在这里插入图片描述

2.3.2 引入config文件

request.js 请求使用配置文件中的参数。request.js 因项目不同,每个人放的位置也不一样直接快捷键 Ctrl+shift+F全局查找一下。
request.js就是对axious的二次封装,没有的话,你就直接改axious中的baseURL.

import PLATFROM_CONFIG from '../../public/config'

也可以使用@符,一样的,我习惯于写全路径,好处是你 按Ctrl键+鼠标,可以直接进入文件中,@符号打死没有这个效果。

2.3.3 使用config参数

采用.找到参数baseURL

const service = axios.create({baseURL: PLATFROM_CONFIG.PLATFROM_CONFIG.baseURL, // WebApi// baseURL: "http://192.168.6.6:19999",timeout: 30000 // 请求超时时间
})

在这里插入图片描述
proxy代理也能改,一样的原理,本文中所有访问后台的URL,都可以从配置文件读取。
在这里插入图片描述

2.4 Vue项目打包

在终端中输入:npm run build,进行打包,我们只要最终生成的 dist 里面的文件。
在这里插入图片描述

三、发布部署

3.1 创建服务目录

就是你要将生成的dist包,放在服务器哪个位置。
我放在D:\vue-project\目录下
在这里插入图片描述

3.2 添加网站

Internet information service(IIS)–>网站–>右键 添加网站
在这里插入图片描述

填写项目说明:
网站名称:随便填,英文
应用程序池:不知道就默认,我发现没啥影响,就是.net core WebApi 要使用专用的程序池,官网下载aspnetcore-runtime-6.0.22-win-x64.exe安装的。
物理路径:就是3.1节存放的路径。
绑定:默认就行,断口号记得改一下,不要冲突就行。需要注意IP一定要选全部未分配,这样可以通过服务器IP直接访问网站。
连接为按钮一定要手动设置一下,输入当前服务器的用户名 和 密码,这样在重启后网站会自动运行。
测试连接按钮点一下,正确配置效果如下图:

在这里插入图片描述

3.3 配置URL重写

在这里插入图片描述
如果没有URL重写这个选项,需要自行下载,安装以下两个包。
requestRouter_amd64.msi
rewrite_amd64_zh-CN.msi
添加规则
在这里插入图片描述
选择入站规则–>空白规则

名称:index
使用:正则表达式
模式:.*
条件:不是文件
重写URL:/index.html

在这里插入图片描述
这里的index.html就是你dist包里面的首页index.html。
在这里插入图片描述
也可以采用这种方式,配置代理转发,将入站的URL替换成你想要的任意格式。

四、异常问题解决

4.1 外网访问时,浏览器可以进入Vue项目,但是发送请求 接口异常

VUE_APP_BASE_API= ‘http://l127.0.0.1:19999’

解决方法:请看2.3节,我没有使用Nginx部署Vue,因为我是Windows环境那个东西不好用。

4.2 接口的IP地址未变更,始终是http://localhost:19999

你在另一台PC下,访问服务器,请求的localhost接口默认把你当前的PC IP作为域名,这样是不对的。当然访问不到 服务器上的Api接口。

解决方法:放配置文件里吧,别瞎折腾来,还有网上Nginx什么的教你怎么转换,麻烦,请看2.3节。

4.3 浏览器首次访问没有问题,然后点浏览器的刷新按钮,报404页面不存在

产生原因就说Vue项目,刷新后页面重定向,路由找不到根页面了,所有我们要配置入站规格,指定根页面index.html

解决方法:IIS配置 入站规则index,请看3.3节。

五、效果展示

内网环境。
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/107861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【小白使用-已验证】PhpStudy下载安装使用教程23.10.17

1.phpstudy是什么? phpstudy是一个php运行环境的集成包,用户不需要去配置运行环境,就可以使用,phpstudy不仅是一款比较好用的php调试环境工具,并且还包括了开发工具和常用手册,对于新手是有很大帮助的。 一…

git操作说明

SourceURL:file:///home/kingqi/桌面/git操作说明.doc 本地建立仓库 mkdir namebao cd namebao pwd git init 初始化 cd .git/ gedit config 本地存储 进入目录上传全部文件 git add . 提交 git commit -m “说明” 远程提交 复制gitee或者github仓库链接 可以直…

计算机网络第2章-DNS(3)

DNS:因特网的目录服务 在因特网上,主机和人类都一样,可以用很多种方式进行标识,主机的一种标识方法是它的主机名。 但是主机名一般是用IP来表示,IP是由四个字节组成,并且有严格的层次结构,不利…

Asp.net core Web Api 配置swagger中文

启动项目,如图: 原来是英文的,我们要中文的,WeatherForecastController.cs是一个示例,删除即可,WeatherForecast.cs同时删除,当然不删除也行,这里是删除,创建自己的控制器…

pytest 之 pytest.ini配置文件

前言:pytest.ini全局配置文件,是pytest单元测试框架的核心配置文件,pytest.ini 可以改变 pytest 的默认行为 一、配置规则 1、优先级 如pytest.ini有该参数值,在执行的时候,优先读取配置文件中的参数如没有&#xf…

idea禁用双击ctrl

Run anything | IntelliJ IDEA Documentation Disable double modifier key shortcuts

去中心遇见混币器

区块链的去中心化交易所在保护隐私和安全性上有着无可比拟的优势,用户甚至不需要提供注册资料,只要有web3钱包即可跟智能合约交易。在uniswap上可兑换绝大多数加密币,新推出的衍生品交易所ununx已经可以交易美股,期货和外汇,一个全…

Flutter 知识集锦 | 监听与通知 ChangeNotifier

theme: cyanosis 1. 数据的提供者与消费者 今天想要和大家好好聊聊 ChangeNotifier 这个东西,从名字上来看它由 change(改变) 和 Notifier(通知器) 构成。打个比方: 有三个铁粉跟我说: "你发新文章的时候跟我说一声"。 之后我发布文章后&…

C++学习: 文件I/O

作者: 苏丙榅 原文链接: https://subingwen.cn/c/file/ 文章目录 1. 文件概述1.1 什么是文件I/O1.2 磁盘文件分类 2. 文件的打开和关闭2.1 文件指针2.2 打开文件 2.3 关闭文件3. 文件的读写3.1 按照字符读写文件3.1.1 写文件3.1.2 读文件3.1.3 EOF 3.2 按照行读写文件3.2.1 写文…

[架构之路-237]:目标系统 - 纵向分层 - 网络通信 - DNS的递归查询和迭代查询

目录 一、DNS协议与DNS系统架构 1.1 什么是DNS协议 1.2 为什么需要DNS协议 1.3 DNS系统架构 二、DNS系统的查询方式 2.1 递归与迭代的比较 2.2 DNS递归查询 2.3 DNS迭代查询 一、DNS协议与DNS系统架构 1.1 什么是DNS协议 DNS(Domain Name System&#xff…

2023年中国商业版服务器操作系统市场发展规模分析:未来将保持稳定增长[图]

服务器操作系统一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服务器和数据库服务器等,是企业IT系统的基础架构平台,也是按应用领域划分的三类操作系统之一。同时服务器操作系统也可以安装在个人电脑上。 服务器操作系统分类 …

WSL Ubuntu 22.04.2 LTS 安装paddlepaddle-gpu==2.5.1踩坑日记

环境是wsl的conda环境。 使用conda安装paddlepaddle-gpu: conda install paddlepaddle-gpu2.5.1 cudatoolkit11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge 等待安装... 报错处理: (1)PreconditionNotMetError: Cannot lo…

excel管理接口测试用例

闲话休扯,上需求:自动读取、执行excel里面的接口测试用例,测试完成后,返回错误结果并发送邮件通知。 分析: 1、设计excel表格 2、读取excel表格 3、拼接url,发送请求 4、汇总错误结果、发送邮件 开始实现…

LeetCode24.两两交换链表中的节点

这道题还是比较简单,我看完题目的想法就是借助一个第三变量,来改变两个节点的指针的指向,比如我要改变1和2节点的指向,我用h1表示节点1,我创建一个新的节点ans,先拿ans指向节点2(ans.next h1.n…

【面试高频题】难度 1/5,经典树的搜索(多语言)

题目描述 这是 LeetCode 上的 「109. 有序链表转换二叉搜索树」 ,难度为 「中等」 Tag : 「二叉树」、「树的搜索」、「分治」、「中序遍历」 给定一个单链表的头节点 head,其中的元素 按升序排序 ,将其转换为高度平衡的二叉搜索树。 本题中&…

软件工程与计算(十四)详细设计中面向对象方法下的模块化

一.面向对象中的模块 1.类 模块化是消除软件复杂度的一个重要方法,每个代码片段相互独立,这样能够提高可维护性。在面向对象方法中,代码片段最重要的类,整个类的所有代码联合起来构成独立的代码片段。 模块化希望代码片段由两部…

CSS的布局 Day03

一、显示模式: 网页中HTML的标签多种多样,具有不同的特征。而我们学习盒子模型、使用定位和弹性布局把内容分块,利用CSS布局使内容脱离文本流,使用定位或弹性布局让每块内容摆放在想摆放的位置,让网站页面布局更合理、…

Android ViewBinding和DataBinding功能作用区别

简述 ViewBinding和DataBinding都是用于在 Android 应用程序中处理视图的工具,但它们有不同的作用和用途。 ViewBinding: ViewBinding 是 Android Studio 的一个工具,用于生成一个绑定类,能够轻松访问 XML 布局文件中的视图。ViewBinding 为…

ubuntu16.04安装vscode遇到的code 依赖于 libnss3 (>= 2:3.30)解决

ubuntu16.04安装vscode遇到的code 依赖于 libnss3 (> 2:3.30);然而:系统中 libnss3:amd64 的版本为 2:3.28.4-0ubuntu0.16.04.14解决方法 一开始下载了最新版本的vscode,安装时出现了上面的错误状况,最新版本的依赖库版本过低的…

Idea怎么配置Maven才能优先从本地仓库获取依赖

网上的方法 : 在设置中搜索 Runner ,在VM Option中设置参数 -DarchetypeCataloginternal删除 解压后的依赖包中的 _remote.repositories m2e-lastUpdated.properties *.lastUpdated 文件。 上边都没有效果 最终的解决方法,修改maven配置文件settings.xml 主要两个…