.NET Core 8 Blazor 和 Vue 3 技术构建网
以下是一个可行的解决方案,能够满足使用 .NET Core 8 Blazor 和 Vue 3 技术构建网站,并且将前后端代码放在一个站点中,实现一次发布部署的目标。
解决方案概述
-
技术栈选择:
-
后端:.NET Core 8 Blazor Server 或 Blazor WebAssembly。
-
前端:Vue 3(用于前后端分离的部分)。
-
部署:将 Vue 3 构建后的静态文件嵌入到 .NET Core 项目中,最终发布为一个站点。
-
-
项目结构:
-
将 Vue 3 项目作为 .NET Core 项目的一部分,放在一个解决方案中。
-
Vue 3 项目负责前后端分离的部分,Blazor 负责其他页面或功能。
-
-
开发流程:
-
开发时,Vue 3 项目独立运行,通过 API 与 .NET Core 后端交互。
-
部署时,将 Vue 3 构建后的静态文件嵌入到 .NET Core 项目中。
-
-
部署流程:
-
使用 .NET Core 的发布命令,将整个站点(包括 Vue 3 的静态文件)打包发布。
-
详细步骤
1. 创建 .NET Core 8 Blazor 项目
使用 Visual Studio 或命令行工具创建一个 .NET Core 8 Blazor 项目。
-
如果是 Blazor Server:
dotnet new blazorserver -n MyBlazorApp
-
如果是 Blazor WebAssembly:
dotnet new blazorwasm -n MyBlazorApp
2. 创建 Vue 3 项目
在 .NET Core 项目的根目录下创建一个 Vue 3 项目。
-
进入 .NET Core 项目目录:
cd MyBlazorApp
-
创建 Vue 3 项目:
npm create vue@latest
按照提示完成 Vue 3 项目的初始化。
3. 配置 Vue 3 项目
-
修改 Vue 3 项目的
vite.config.js或vue.config.js,确保构建输出目录为 .NET Core 项目的wwwroot目录。
例如:javascript
export default defineConfig({build: {outDir: '../wwwroot/vue', // 将构建输出到 .NET Core 的 wwwroot/vue 目录}, });
4. 配置 .NET Core 项目
-
在 .NET Core 项目中,修改
Program.cs或Startup.cs,确保能够正确加载 Vue 3 的静态文件。
例如:csharp
app.UseStaticFiles(); // 启用静态文件支持
-
在
wwwroot目录下创建一个vue文件夹,用于存放 Vue 3 构建后的静态文件。
5. 开发时运行
-
开发时,Vue 3 项目独立运行,通过 API 与 .NET Core 后端交互。
-
启动 .NET Core 项目:
dotnet run
-
启动 Vue 3 项目:
npm run dev
-
6. 构建和部署
-
在发布时,先构建 Vue 3 项目,然后将构建后的文件复制到 .NET Core 项目的
wwwroot/vue目录。-
构建 Vue 3 项目:
npm run build
-
构建 .NET Core 项目:
dotnet publish -c Release -o ./publish
-
-
最终发布的
publish目录将包含 .NET Core 后端和 Vue 3 前端的完整站点。
7. 部署到服务器
-
将
publish目录中的内容部署到服务器(例如 IIS、Nginx 或 Kestrel)。 -
确保服务器配置正确,能够处理静态文件和 API 请求。
项目结构示例
复制
MyBlazorApp/ ├── Client/ # Vue 3 项目 │ ├── src/ │ ├── public/ │ ├── package.json │ └── vite.config.js ├── wwwroot/ # .NET Core 静态文件目录 │ └── vue/ # Vue 3 构建后的静态文件 ├── Pages/ # Blazor 页面 ├── Program.cs # .NET Core 启动文件 ├── MyBlazorApp.csproj # .NET Core 项目文件 └── ...
注意事项
-
API 交互:
-
Vue 3 项目通过 API 与 .NET Core 后端交互。确保 .NET Core 项目中定义了所需的 API 接口。
-
-
路由冲突:
-
如果 Blazor 和 Vue 3 都使用了前端路由,需要确保路由不会冲突。可以通过 URL 前缀区分(例如
/vue/*由 Vue 处理,其他由 Blazor 处理)。
-
-
静态文件缓存:
-
在部署时,确保静态文件(如 Vue 3 的 JS 文件)的缓存策略正确,避免浏览器缓存旧版本。
-
-
开发效率:
-
开发时,Vue 3 项目可以独立运行,通过代理与 .NET Core 后端交互,提高开发效率。
-
总结
通过以上方案,你可以将 .NET Core 8 Blazor 和 Vue 3 技术结合,构建一个前后端代码都在一个站点中的网站。开发时,Vue 3 项目独立运行;部署时,Vue 3 的静态文件嵌入到 .NET Core 项目中,实现一次发布部署的目标。
相关文章:
.NET Core 8 Blazor 和 Vue 3 技术构建网
以下是一个可行的解决方案,能够满足使用 .NET Core 8 Blazor 和 Vue 3 技术构建网站,并且将前后端代码放在一个站点中,实现一次发布部署的目标。 解决方案概述 技术栈选择: 后端:.NET Core 8 Blazor Server 或 Blazor …...
ElasticSearch集群因索引关闭重打开导致飘红问题排查
背景 某组件向 ElasticSearch 写入数据,从最近某一天开始写入速度变慢,数据一直有积压。推测是 ElasticSearch 集群压力导致的,查看 ElasticSearch 集群状态,发现集群确实处于 red 状态。 本文记录 ElasticSearch 集群因索引关闭…...
计算机毕业设计Tensorflow+LSTM空气质量监测及预测系统 天气预测系统 Spark Hadoop 深度学习 机器学习 人工智能
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
手搓基于CNN的Chest X-ray图像分类
数据集Chest X-ray PD Dataset 数据集介绍 - 知乎https://zhuanlan.zhihu.com/p/661311561 CPU版本 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import Dataset, DataLoader from torchvision import transforms, models import …...
使用java代码操作rabbitMQ收发消息
SpringAMQP 将来我们开发业务功能的时候,肯定不会在控制台收发消息,而是应该基于编程的方式。由于RabbitMQ采用了AMQP协议,因此它具备跨语言的特性。任何语言只要遵循AMQP协议收发消息,都可以与RabbitMQ交互。并且RabbitMQ官方也…...
【数据结构】(7) 栈和队列
一、栈 Stack 1、什么是栈 栈是一种特殊的线性表,它只能在固定的一端(栈顶)进行出栈、压栈操作,具有后进先出的特点。 2、栈概念的例题 答案为 C,以C为例进行讲解: 第一个出栈的是3,那么 1、…...
【Pytorch实战教程】让数据飞轮转起来:PyTorch Dataset与Dataloader深度指南
文章目录 让数据飞轮转起来:PyTorch Dataset与Dataloader深度指南一、为什么需要数据管理组件?二、Dataset:数据集的编程接口2.1 自定义Dataset三要素2.2 实战案例:图像分类数据集三、Dataloader:高效数据流水线3.1 核心参数解析3.2 数据流可视化3.3 多卡训练支持四、综合…...
Python的秘密基地--[章节13] Python 数据分析与可视化
第13章:Python 数据分析与可视化 在大数据时代,数据分析与可视化是至关重要的技能。Python 提供了多个强大的库,如 NumPy、Pandas、Matplotlib 和 Seaborn,用于数据处理、分析和可视化。本章将介绍如何使用 Python 进行数据分析&…...
Python 入门:文件操作、读写、管理
目录 1. 引言 2. 文件基础操作 2.1 打开文件(open()) 2.2 读取文件内容 2.3 写入文件 3. 处理 CSV 文件 3.1 读取 CSV 文件 3.2 写入 CSV 文件 4. 处理 JSON 文件 4.1 读取 JSON 文件 4.2 写入 JSON 文件 5. 文件管理操作 5.1 删除文件 5.…...
Composo:企业级AI应用的质量守门员
在当今快速发展的科技世界中,人工智能(AI)的应用已渗透到各行各业。然而,随着AI技术的普及,如何确保其可靠性和一致性成为了企业面临的一大挑战。Composo作为一家致力于为企业提供精准AI评估服务的初创公司,通过无代码和API双模式,帮助企业监测大型语言模型(LLM)驱动的…...
crictl和ctr命令详解
一,crictl crictl 是 CRI 兼容的容器运行时命令行接口。 你可以使用它来检查和调试 Kubernetes 节点上的容器运行时和应用程序。 crictl 和它的源代码在 cri-tools 代码库。 1,安装 需要下载与kubernetes相对应的版本,我的k8s版本是1.30的…...
Python数据分析案例71——基于十种模型的信用违约预测实战
背景 好久没写这种基础的做机器学习流程了,最近过完年感觉自己代码忘了好多.....复习一下。 本次带来的是信贷违约的预测,即根据这个人的特征(年龄收入什么的),预测他是不是会违约,会违约就拒绝贷款&…...
Lesson 131 Don‘t be so sure
Lesson 131 Don’t be so sure 词汇 Egypt n. 埃及 相关:Egyptian n. 埃及人,埃及的 camel n. 骆驼 Mummy n. 木乃伊 Pyramid n. 金字塔 Pharaoh n. 法老 例句:你去过埃及吗? Have you been to E…...
python康威生命游戏的图形化界面实现
康威生命游戏(Conway’s Game of Life)是由英国数学家约翰何顿康威(John Horton Conway)在1970年发明的一款零玩家的细胞自动机模拟游戏。尽管它的名字中有“游戏”,但实际上它并不需要玩家参与操作,而是通…...
区块链技术:Facebook 重塑社交媒体信任的新篇章
在这个信息爆炸的时代,社交媒体已经成为我们生活中不可或缺的一部分。然而,随着社交平台的快速发展,隐私泄露、数据滥用和虚假信息等问题也日益凸显。这些问题的核心在于传统社交媒体依赖于中心化服务器存储和管理用户数据,这种模…...
【自学笔记】文言一心的基础知识点总览-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 文心一言知识点总览一、文心一言简介二、文心一言的核心功能三、文心一言的技术特点四、文心一言的应用场景五、文心一言的使用技巧六、文心一言的未来发展 总结 文…...
UE求职Demo开发日志#25 试试网络同步和尝试打包
1 改了一些时序上的bug,成功运行了多端 (UE一些网络相关的功能都弄好了,只需要标记哪个变量或Actor需要复制) 2 以前遗留的bug太多了,改到晚上才打包好一个能跑的版本,而且有的特效还不显示(悲…...
2021 年 9 月青少年软编等考 C 语言五级真题解析
目录 T1. 问题求解思路分析T2. 抓牛思路分析T3. 交易市场思路分析T4. 泳池思路分析T1. 问题求解 给定一个正整数 N N N,求最小的 M M M 满足比 N N N 大且 M M M 与 N N N 的二进制表示中有相同数目的 1 1 1。 举个例子,假如给定 N N N 为 78 78 78,二进制表示为 …...
Win10环境使用ChatBox集成Deep Seek解锁更多玩法
Win10环境使用ChatBox集成Deep Seek解锁更多玩法 前言 之前部署了14b的Deep Seek小模型,已经验证了命令行及接口方式的可行性。但是纯命令行或者PostMan方式调用接口显然不是那么友好: https://lizhiyong.blog.csdn.net/article/details/145505686 纯…...
第 26 场 蓝桥入门赛
2.对联【算法赛】 - 蓝桥云课 问题描述 大年三十,小蓝和爷爷一起贴对联。爷爷拿出了两副对联,每副对联都由 N 个“福”字组成,每个“福”字要么是正的(用 1 表示),要么是倒的(用 0 表示&#…...
CodeGPT + IDEA + DeepSeek,在IDEA中引入DeepSeek实现AI智能开发
CodeGPT IDEA DeepSeek,在IDEA中引入DeepSeek 版本说明 建议和我使用相同版本,实测2022版IDEA无法获取到CodeGPT最新版插件。(在IDEA自带插件市场中搜不到,可以去官网搜索最新版本) ToolsVersionIntelliJ IDEA202…...
【2025年更新】1000个大数据/人工智能毕设选题推荐
文章目录 前言大数据/人工智能毕设选题:后记 前言 正值毕业季我看到很多同学都在为自己的毕业设计发愁 Maynor在网上搜集了1000个大数据的毕设选题,希望对大家有帮助~ 适合大数据毕业设计的项目,完全可以作为本科生当前较新的毕…...
什么是中间件中间件有哪些
什么是中间件? 中间件(Middleware)是指在客户端和服务器之间的一层软件组件,用于处理请求和响应的过程。 中间件是指介于两个不同系统之间的软件组件,它可以在两个系统之间传递、处理、转换数据,以达到协…...
使用docker搭建FastDFS文件服务
1.拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/fastdfs:latest2.使用docker镜像构建tracker容器(跟踪服务器,起到调度的作用) docker run -dti --networkhost --name tracker -v /data/fdfs/tracker:/var/fdfs -…...
使用OpenGL自己定义一个button,响应鼠标消息:掠过、点击、拖动
button需要有一个外观 外观 大小跟随窗口改变,采用纯色背景、纯色文字 文字 大小跟随窗口改变 button需要获得鼠标消息 掠过 鼠标掠过时 button 出现阴影,鼠标掠过后 button 阴影消失 点击 点击后进入相应事件 拖动 改变图标所在位置 需要在g…...
天津三石峰科技——汽车生产厂的设备振动检测项目案例
汽车产线有很多传动设备需要长期在线运行,会出现老化、疲劳、磨损等 问题,为了避免意外停机造成损失,需要加装一些健康监测设备,监测设备运 行状态。天津三石峰科技采用 12 通道振动信号采集卡(下图 1)对…...
Linux之文件IO前世今生
在 Linux之文件系统前世今生(一) VFS中,我们提到了文件的读写,并给出了简要的读写示意图,本文将分析文件I/O的细节。 一、Buffered I/O(缓存I/O)& Directed I/O(直接I/O&#…...
Java中实现定时锁屏的功能(可以指定时间执行)
Java中实现定时锁屏的功能(可以指定时间执行) 要在Java中实现定时锁屏的功能,可以使用java.util.Timer或java.util.concurrent.ScheduledExecutorService来调度任务,并通过调用操作系统的命令来执行锁屏。下面我将给出一个基本的…...
半导体制造工艺讲解
目录 一、半导体制造工艺的概述 二、单晶硅片的制造 1.单晶硅的制造 2.晶棒的切割、研磨 3.晶棒的切片、倒角和打磨 4.晶圆的检测和清洗 三、晶圆制造 1.氧化与涂胶 2.光刻与显影 3.刻蚀与脱胶 4.掺杂与退火 5.薄膜沉积、金属化和晶圆减薄 6.MOSFET在晶圆表面的形…...
深入理解进程优先级
目录 引言 一、进程优先级基础 1.1 什么是进程优先级? 1.2 优先级与系统性能 二、查看进程信息 2.1 使用ps -l命令 2.2 PRI与NI的数学关系 三、深入理解Nice值 3.1 Nice值的特点 3.2 调整优先级实践 四、进程特性全景图 五、优化实践建议 结语 引言 在操…...
