Admin.NET管理系统(vue3等前后端分离)学习笔记--持续更新

news2024/11/26 8:21:37

我的学习笔记 - 9iAdmin.NET

  • 欢迎学习交流
    • (一)前端笔记
      • 1.1 关于.env的设置
      • 1.2 关于路由模式问题
      • 1.3 关于 vue.config.ts
      • 1.4 关于 打包(pnpm run build)溢出问题
      • 1.5 关于 打包(pnpm run build)后部署到IIS重定向问题
      • 1.6 关于 代码生成器的使用
      • 1.7 部署到linux参考
      • 1.8 学习参考
      • 1.9 关于部署到IIS后无法显示头像(签名)的问题
      • 1.10 关于打包发布后mqtt.js出现未初始化错误问题
    • (二)后端笔记
    • (三)努力的方向

欢迎学习交流

学习贵在坚持,我与你同在…本帖持续更新
学习内容不分先后,每个都是知识点,可能有理解不对的地方,请多多指教,不胜感激!

(一)前端笔记

1.1 关于.env的设置

1)代码

# port 端口号  调试访问地址 如 http://localhost:8877
VITE_PORT = 8877

# 运行npm run dev 时自动打开浏览器(true自动打开,false不打开)
VITE_OPEN = true

# 打包是否开启 cdn(源文件 utils/build.ts),可自行修改 这个必须打开否则无法生成,错误见图1.1.1,优化打包体积
VITE_OPEN_CDN = false

# public path 配置线上环境路径(打包)、本地通过 http-server 访问时,请置空即可 https://lyt-top.gitee.io/vue-next-admin-doc-preview/config/build/
# 本地预览必须把:根目录 .env 文件中的  置空,,,,,'/'          
# 单文件发布时清空! 打包部署IIS时必须加上'/' 或在 .env.production 中设置该值;否则IIS部署刷新会404
VITE_PUBLIC_PATH = 

图1.1.1
在这里插入图片描述

1.2 关于路由模式问题

1.2.1 官网解释 https://next.router.vuejs.org/zh/api/#createrouter https://router.vuejs.org/guide/essentials/history-mode.html
1.2.2 模式配置(web/src/router/index.ts)

export const router = createRouter({
	history: createWebHashHistory(),// 模式链接中出现#问题
	//history: createWebHistory(),//链接不出现#,但出现刷新404和部分资源图片路径错误,2023.5.22 图片路径以/开头即可解决问题
	/**
	 * 说明:Hash Mode 会带小尾巴#,createWebHashHistory 此模式会产生路径带#的问题,createWebHistory 此模式能解决地址#问题但头像图片路径错误,createMemoryHistory 地址栏只有一级地址没有路由路径
	 * 1、notFoundAndNoPower 默认添加 404、401 界面,防止一直提示 No match found for location with path 'xxx'
	 * 2、backEnd.ts(后端控制路由)、frontEnd.ts(前端控制路由) 中也需要加 notFoundAndNoPower 404、401 界面。
	 *    防止 404、401 不在 layout 布局中,不设置的话,404、401 界面将全屏显示
	 */
	routes: [...notFoundAndNoPower, ...staticRoutes],
});

总结:1.用单文件发布模式时,必须使用createWebHashHistory()模式否则,刷新就404,暂时没找到解决办法。2.用IIS部署发布时,都可以用。注意“createWebHashHistory()”模式下会在地址栏中出现#符号;而“createWebHistory()”模式下没有#符号。3.在.env中可能需要配置 VITE_PUBLIC_PATH = ‘/’
解决错误类似:类似:Expected a JavaScript module script but the server responded with a MIME type of “text/html”. Strict MIME type checking is enforced for module scripts per HTML spec.

1.3 关于 vue.config.ts

有关路径和404问题可能会用到的配置

module.exports = {
    publicPath: './'base: './',
}

1.4 关于 打包(pnpm run build)溢出问题

溢出错误,看到这句话
解决办法:修改 “web/package.json” 找到

  "scripts": {
    "dev": "vite",
    "build": "node --max_old_space_size=102400 ./node_modules/vite/bin/vite.js build",
    "lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/"
  },

把 “build”:“vite build” 的值修改为“node --max_old_space_size=102400 ./node_modules/vite/bin/vite.js build” 这个方法最简单,不出问题!
其他方法就比较麻烦。
全局安装
npm i -g increase-memory-limit
进入项目运行
increase-memory-limit
执行set NODE_OPTIONS=–max_old_space_size=10240

1.5 关于 打包(pnpm run build)后部署到IIS重定向问题

需要在项目根目录(如web/dist)新建站点之后创建 web.config 代码如下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="api" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
          <match url="*api/*" />
          <action type="Rewrite" url="http://localhost:5005/api/{R:2}" />
        </rule>
        <rule name="hubs" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
          <match url="*hubs/*" />
          <action type="Rewrite" url="http://localhost:5005/hubs/{R:2}" />
        </rule>
        <rule name="index" stopProcessing="true">
          <match url="^((?!(api)).)*$" />
          <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>

解决:刷新404问题和其他错误问题。
IIS部署参考:https://furion.baiqian.ltd/docs/deploy-iis/
在这里插入图片描述

单文件发布参考:https://furion.baiqian.ltd/docs/singlefile
IIS部署指南(重要):https://gitee.com/zuohuaijun/Admin.NET/blob/master/doc/%E5%BF%AB%E6%8D%B7%E9%83%A8%E7%BD%B2%E5%88%B0IIS%E6%96%B9%E6%A1%88.md
IIS AAR配置
在这里插入图片描述
配置IIS的URL重写,解决404刷新问题

1.6 关于 代码生成器的使用

https://gitee.com/zuohuaijun/Admin.NET/blob/master/doc/%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E5%99%A8%E4%BD%BF%E7%94%A8.md
在这里插入图片描述

1.7 部署到linux参考

https://gitee.com/zuohuaijun/Admin.NET/blob/master/doc/%E5%BF%AB%E6%8D%B7%E9%83%A8%E7%BD%B2%E5%88%B0linux%E6%96%B9%E6%A1%88.md

1.8 学习参考

1.8.1 UI参考(必看):https://element-plus.gitee.io/zh-CN/component/button.html
1.8.2 框架参考文档(必看):https://lyt-top.gitee.io/vue-next-admin-doc-preview/config/
1.8.3 框架参考(文档齐全,更新及时):https://furion.baiqian.ltd/docs/
仓库:https://gitee.com/dotnetchina/Furion
1.8.4 相关MQTT.js 参考 https://github.com/mqttjs/MQTT.js
1.8.5 VUE3 router:https://v3.router.vuejs.org/zh/guide/
1.8.6 相关指令
打包指令:pnpm run build 注意在项目web目录下执行cmd
安装依赖:pnpm install 注意如果新增,变化等情况 可能需要重新安装依赖(有时候莫名其妙的错误时执行下看看)
运行前端:pnpm run dev 注意在web目录下执行cmd
AAR下载地址:https://iis-umbraco.azurewebsites.net/downloads/microsoft/application-request-routing
ASP.NET Core Runtime:https://dotnet.microsoft.com/en-us/download/dotnet/6.0
Swagger生成器(参考1.6方法):https://editor-next.swagger.io/

1.9 关于部署到IIS后无法显示头像(签名)的问题

1.9.1 注意使用的路由模式 “createWebHistory()”,一般使用“createWebHashHistory()”都没问题。
1.9.2 .env中“VITE_PORT = 8877”的端口号要和IIS中定义的端口号一致,否则无法显示。有错误。
可能类似错误:Expected a JavaScript module script but the server responded with a MIME type of “text/html”. Strict MIME type checking is enforced for module scripts per HTML spec.
如果不想一致,就打包前修改下此值和IIS端口保持一致即可。开发时再改回来。
在这里插入图片描述

1.9.3 此createWebHistory模式下。调整个路径位置 web/src/stores/userinfo.ts修改第48和50行 图形路径前加’/'解决问题
如 avatar: d.avatar ? ‘/’+d.avatar : ‘/favicon.ico’,

1.9.4 IIS运行目录与后台之间的关系(后台默认占用5005端口,请勿重复)
1)第一步打包:在web目录下执行(cmd)指令:pnpm run build 打包后的文件夹dist
2)第二步定义IIS的web.config配置(已写好),复制到 dist (因为每次打包此文件夹将会被清空)
3)第三步将dist目录所有文件及文件夹复制到运行目录下(后台目录下的bin…\wwwroot中)
执行复制命令 (改地址哦)
xcopy “F:\Admin.NET-next\Web\web.config” “F:\Admin.NET-next\Web\dist” /y
xcopy “F:\Admin.NET-next\Web\dist” “F:\Admin.NET-next\Admin.NET\Admin.NET.Web.Entry\bin\Debug\net6.0\wwwroot” /s /y

1.10 关于打包发布后mqtt.js出现未初始化错误问题

页面内添加事件总线引用。可能没用到。不知道为何加上就不出错了。
import mittBus from ‘/@/utils/mitt’;
//事件总线mitt 解决打包后错误Uncaught (in promise) ReferenceError: Cannot access ‘oe’ before initialization
在这里插入图片描述

(二)后端笔记

2.1 仓库地址:https://gitee.com/zuohuaijun/Admin.NET
在这里插入图片描述
如果开发,一般在 Admin.NET.Application中开发,其他项目随官网更新,当然也可以加入一些自己的东东。
后台运行 入口 “Admin.NET.Web.Entry”
运行 “Admin.NET.Web.Entry\bin\Debug\net6.0*Admin.NET.Web.Entry.exe*”
发布目录在“Admin.NET.Web.Entry\bin\Release””下
运行后台的模板文件Admin.NET.Web.Entry\bin\Debug\net6.0\wwwroot\Template下
头像及其他相关在 Admin.NET.Web.Entry\bin\Debug\net6.0\wwwroot\Upload目录的对应文件夹中
Avatar:头像图片目录
Signature:签名图片目录
注意运行端口(.env中)与前台运行端口必须一致。否则图片无法显示。
2.2 后台生成顺序(依次生成文件个数1,2,3,4)
Admin.NET.Core–>Admin.NET.Application–>Admin.NET.Web.Core–>Admin.NET.Web.Entry
2.3 后台模块开发,找个类似的模块模仿去写 字段 接口即可。注意要生成swagger方法见1.6 放入对应的文件夹中
如api-services中,注意主文件对应引入api.ts和index.ts
在这里插入图片描述
接口在api-services/apis和models中。前端页面都在views中。
在这里插入图片描述
注意后续同步官方文件时,注意哪些不能覆盖!!

(三)努力的方向

3.1 引用mqtt.js功能之后,打包运行就出错误
ReferenceError:cannot access ‘oe’ before initialization at readable-stream
问题已经解决(5.25日)见1.10说明
3.2 其他待开发模块。。。

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

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

相关文章

你知道网速的发展史吗? 80年代的我们是这样上网的!

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&#x1…

C++:征服C指针:指针(一)

关于指针 1.看一个简单的程序&#xff0c;来接触下指针2. 常见疑问&#xff1a;指针就是地址&#xff0c;那么int的指针和double的指针有什么区别 了3. 常见疑问&#xff1a;指针运算4. 为什么存在奇怪的指针运算符5. 试图将数组作为函数的参数进行传递。6. 什么是空指针5.1 声…

怎样用一周时间研究 ChatGPT

我是怎样用一周时间研究 ChatGPT 的&#xff1f; 上周大概开了 20 多个会&#xff0c;其中有一些是见了觉得今年可能会比较活跃出手的机构&#xff0c;其余见的绝大多数是和 ChatGPT 相关。 我后面就以 ChatGPT 为例&#xff0c;讲下我是如何快速一周 cover 一个赛道的&#x…

GDB 基础使用与多进程调试

​ GDB 全称“GNU symbolic debugger”是 Linux 下常用的程序调试器&#xff0c;当下的 GDB 支持调试多种编程语言编写的程序&#xff0c;包括 C、C、Go、Objective-C、OpenCL、Ada 等。 01 GDB 基础调试 1.1 基础使用 安装工具 # 安装 gcc sudo yum install gcc # 安装 g s…

记录一次el-table动态添加删除列导致表格样式错误(或不聚集)问题

记录一次el-table动态添加删除列导致表格样式错误问题 需求背景出现的问题解决方案理论&#xff1a;在el-table中设置key值&#xff0c;重新赋值表格数据之后&#xff0c;更新key值&#xff0c;达到动态更新效果 需求背景 一个电商类商品管理平台&#xff08;类似shopify产品编…

2023 华为 Datacom-HCIE 真题题库 06--含解析

多项选择 1.[试题编号&#xff1a;190185] &#xff08;多选题&#xff09;如图所示&#xff0c;PE 1和PE2之间通过Loopback0接口建立MP-BGP邻居关系&#xff0c;在配置完成之后&#xff0c;发现CE1和CE2之间无法互相学习路由&#xff0c;以下哪些项会导致该问题出现? A、PE1…

初识linux之简单了解TCP协议与UDP协议

目录 一、理解源IP地址和目的IP地址 二、端口号 1. 为什么要有端口号 2. 理解端口号 3. 源端口号和目的端口号 三、初步了解TCP协议和UDP协议 1. 初步认识TCP协议 2. 初步认识UDP协议 3. 可靠传输与不可靠传输 四、网络字节序 1. 网络字节序的概念 2. 如何形成网络…

python+django电子笔记交易系统vue

编码使用python&#xff08;我的pycharm版本是2021.3.3&#xff09;&#xff0c;数据库使用mysql&#xff08;我的mysql版本5.5&#xff09;。网站点击能够跳转各个页面&#xff0c;不用部署服务器&#xff0c;本地运行即可。 题目&#xff1a;基于django的电子笔记交易系统 功…

并发编程的三大特性之有序性

有序性的概念 Java文件在被cpu执行前会进行编译成cpu可以执行的指令&#xff0c;为了提高cpu的执行效率会对其中的一些语句进行重排序。Java指令最终是乱序执行的目的是为了提高cpu的执行效率&#xff0c;发挥cpu的性能 单例模式由于指令重排可能会出现上述的问题&#xff0…

ASP.NET Core

1. 入口文件 一个应用程序总有一个入口文件&#xff0c;是应用启动代码开始执行的地方&#xff0c;这里往往也会涉及到应用的各种配置。当我们接触到一个新框架的时候&#xff0c;可以从入口文件入手&#xff0c;了解入口文件&#xff0c;能够帮助我们更好地理解应用的相关配置…

SOC与MCU的区别及汽车电子未来发展以及展望

SOC与MCU的区别及汽车电子未来发展以及展望 MCU与SOC的区别 CPU&#xff08;Central Processing Unit&#xff09;&#xff0c;是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可…

【PHP】问题已解决:宝塔面板搭建php网站无法上传图片或是文件(保姆级图文)

目录 问题情况原因和解决方法总结 『PHP』分享PHP环境配置到项目实战个人学习笔记。 欢迎关注 『PHP』 系列&#xff0c;持续更新中 欢迎关注 『PHP』 系列&#xff0c;持续更新中 问题情况 宝塔面板搭建php网站无法上传图片或是文件。 原因和解决方法 检查你的php里是否安装…

老板让你写个PPT没有头绪?没事,ChatGPT来帮你!

文章目录 前言一、先确定写什么——准备内容二、再看看能用吗——自动生成PPT三、最后再改改——看个人喜好写在最后 前言 自从人工智能横空而出&#xff0c;它在人们的生活中产生了巨大的影响。尤其在企业办公领域&#xff0c;借助人工智能的力量&#xff0c;能够迅速产出丰富…

千乎万唤始出来,支持gpt3和gpt4支持画图,的在线gpt应用接入案例开源上线啦

了解OPEN AI 平台用户一直在说&#xff0c;这个接口要怎么对接&#xff0c;如何在体验。 由于我一直忙于接口中台开发&#xff0c;所以在线基于OPEN AI 接口实例例子就一直没有写。现在终于写完了。 基于纯HTMLCSSJS 小白也能轻松上手部署。代码简单清晰。 这里不多做其他赘述…

tensorflow及其keras如何保存模型

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

如何从宏观层面构建优秀的大语言模型

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

高阶python | 装饰器

python版本&#xff1a;3.10.0 在学习装饰器前先了解一下闭包 阿-岳同学【python技巧060】形象理解闭包&#xff0c;玩转闭包 通过视频首先可以了解到主要的三个知识点 闭包是嵌套结构内层函数有调用外层函数的变量为闭包&#xff0c;同时内层函数是闭包函数&#xff08;所…

根据DataFrame1中指定列c1的每个值a1 从DataFrame2中指定列c2中的每个值a2 找到与a1最临近的值a2,进行所在行合并

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 根据DataFrame1中指定列c1的每个值a1 从DataFrame2中指定列c2中的每个值a2 找到与a1最临近的值a2,进行所在行合并 [太阳]选择题 关于以下代码说法错误的是&#xff1a; import pandas as pd…

新手应该如何快速上手MySQL数据库?

前言 数据库是计算机系统中用于存储、管理和检索数据的系统。它允许用户访问并管理数据&#xff0c;并具有可靠、可扩展和高效的特性。 文章目录 前言1. 数据库的相关概念1.1 数据1.2 数据库1.3 数据库管理系统1.4 数据库系统1.5 SQL 2. MySQL数据库2.1 MySQL安装2.2 MySQL配置…

我在CSDN的736个日子——两年纪念日“随想”

2021-05-21~2023-05-27&#xff0c;我在 CSDN 已有 736 个日子。 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那么简单…… 地址&#xff1a;https:/…