.NET Core 8 Blazor 和 Vue 3 技术构建网

news2025/3/12 6:14:32

以下是一个可行的解决方案,能够满足使用 .NET Core 8 Blazor 和 Vue 3 技术构建网站,并且将前后端代码放在一个站点中,实现一次发布部署的目标。


解决方案概述

  1. 技术栈选择

    • 后端:.NET Core 8 Blazor Server 或 Blazor WebAssembly。

    • 前端:Vue 3(用于前后端分离的部分)。

    • 部署:将 Vue 3 构建后的静态文件嵌入到 .NET Core 项目中,最终发布为一个站点。

  2. 项目结构

    • 将 Vue 3 项目作为 .NET Core 项目的一部分,放在一个解决方案中。

    • Vue 3 项目负责前后端分离的部分,Blazor 负责其他页面或功能。

  3. 开发流程

    • 开发时,Vue 3 项目独立运行,通过 API 与 .NET Core 后端交互。

    • 部署时,将 Vue 3 构建后的静态文件嵌入到 .NET Core 项目中。

  4. 部署流程

    • 使用 .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 项目文件
└── ...

注意事项

  1. API 交互

    • Vue 3 项目通过 API 与 .NET Core 后端交互。确保 .NET Core 项目中定义了所需的 API 接口。

  2. 路由冲突

    • 如果 Blazor 和 Vue 3 都使用了前端路由,需要确保路由不会冲突。可以通过 URL 前缀区分(例如 /vue/* 由 Vue 处理,其他由 Blazor 处理)。

  3. 静态文件缓存

    • 在部署时,确保静态文件(如 Vue 3 的 JS 文件)的缓存策略正确,避免浏览器缓存旧版本。

  4. 开发效率

    • 开发时,Vue 3 项目可以独立运行,通过代理与 .NET Core 后端交互,提高开发效率。


总结

通过以上方案,你可以将 .NET Core 8 Blazor 和 Vue 3 技术结合,构建一个前后端代码都在一个站点中的网站。开发时,Vue 3 项目独立运行;部署时,Vue 3 的静态文件嵌入到 .NET Core 项目中,实现一次发布部署的目标。

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

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

相关文章

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、…

Composo:企业级AI应用的质量守门员

在当今快速发展的科技世界中,人工智能(AI)的应用已渗透到各行各业。然而,随着AI技术的普及,如何确保其可靠性和一致性成为了企业面临的一大挑战。Composo作为一家致力于为企业提供精准AI评估服务的初创公司,通过无代码和API双模式,帮助企业监测大型语言模型(LLM)驱动的…

Python数据分析案例71——基于十种模型的信用违约预测实战

背景 好久没写这种基础的做机器学习流程了,最近过完年感觉自己代码忘了好多.....复习一下。 本次带来的是信贷违约的预测,即根据这个人的特征(年龄收入什么的),预测他是不是会违约,会违约就拒绝贷款&…

python康威生命游戏的图形化界面实现

康威生命游戏(Conway’s Game of Life)是由英国数学家约翰何顿康威(John Horton Conway)在1970年发明的一款零玩家的细胞自动机模拟游戏。尽管它的名字中有“游戏”,但实际上它并不需要玩家参与操作,而是通…

区块链技术:Facebook 重塑社交媒体信任的新篇章

在这个信息爆炸的时代,社交媒体已经成为我们生活中不可或缺的一部分。然而,随着社交平台的快速发展,隐私泄露、数据滥用和虚假信息等问题也日益凸显。这些问题的核心在于传统社交媒体依赖于中心化服务器存储和管理用户数据,这种模…

UE求职Demo开发日志#25 试试网络同步和尝试打包

1 改了一些时序上的bug,成功运行了多端 (UE一些网络相关的功能都弄好了,只需要标记哪个变量或Actor需要复制) 2 以前遗留的bug太多了,改到晚上才打包好一个能跑的版本,而且有的特效还不显示(悲…

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 -…

天津三石峰科技——汽车生产厂的设备振动检测项目案例

汽车产线有很多传动设备需要长期在线运行,会出现老化、疲劳、磨损等 问题,为了避免意外停机造成损失,需要加装一些健康监测设备,监测设备运 行状态。天津三石峰科技采用 12 通道振动信号采集卡(下图 1)对…

Linux之文件IO前世今生

在 Linux之文件系统前世今生(一) VFS中,我们提到了文件的读写,并给出了简要的读写示意图,本文将分析文件I/O的细节。 一、Buffered I/O(缓存I/O)& Directed I/O(直接I/O&#…

半导体制造工艺讲解

目录 一、半导体制造工艺的概述 二、单晶硅片的制造 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 调整优先级实践 四、进程特性全景图 五、优化实践建议 结语 引言 在操…