教你发布vue+.netCore项目到服务器

本文详细记录了Vue+.netCore项目从发布到部署到服务器的全过程,包括.netCore项目发布、Vue前端发布、服务器环境部署及解决常见错误的方法,旨在帮助开发者顺利进行项目部署。

最近一直在做项目,发布部署的事情都是同事或者老大做的,无奈什么事都要自己尝试经历后才能记住,所以发布的事情轮到我了,由于是第一次发布部署项目到一个新的服务器环境,难免会遇到各种各样的问题,总结下来,希望可以帮到需要的人。

项目框架使用的是vue+.netCore2.2所以发布的时候需要前后端分开发布,遇到的问题是挺多的,不过对自己来说也算是一种经历吧。

一..netCore 项目发布

1.1 修改环境配置为线上服务器的数据库地址

将网站下的三个json文件的数据库配置修改为线上的数据库环境

1.2设置启动项,迁移数据库

将项目内的Migrator设置为启动项目,并修改项目下app.settings.json的连接字符串为服务器的IP,登录名和密码为线上数据库的登录名和密码

image

1.3迁移数据库到线上

F5启动项目,会弹出提示 是否将数据库迁移到线上服务器地址,输入 “y”即可将数据库迁移到服务器

image

1.4发布本地项目

重新将启动项目设置为Middleware.Web.Host,并点击发布按钮。将项目发布到自己选定的文件夹

### 集成概述 将 Vue.js 与 ASP.NET Core 集成可以构建高性能的全栈 Web 应用程序。Vue.js 是一款轻量级且灵活的前端框架,它采用 MVVM 架构模式,便于构建交互式用户界面[^3]。而 ASP.NET Core 是一种跨平台、高性能的后端框架,支持创建 RESTful API 和动态 Web 应用。通过将两者结合,可以充分发挥 Vue.js 的响应式特性和 ASP.NET Core 的可扩展性。 ### 项目搭建 #### 后端配置 首先,创建一个 ASP.NET Core 项目,可以通过 Visual Studio 或 .NET CLI 完成。创建完成后,可以添加控制器以提供 API 端点。例如: ```csharp [ApiController] [Route("[controller]")] public class SampleDataController : ControllerBase { [HttpGet] public IActionResult GetData() { return Ok(new { Message = "Hello from ASP.NET Core!" }); } } ``` #### 前端配置 在前端,使用 Vue CLI 创建 Vue.js 项目。可以通过以下命令快速创建: ```bash vue create vue-app cd vue-app npm run serve ``` 接下来,将 ASP.NET Core 配置为托管 Vue.js 前端应用。可以通过 `Microsoft.AspNetCore.SpaServices` 包来集成 Vue.js 开发服务器与 ASP.NET Core。在 `Startup.cs` 文件中添加以下代码: ```csharp app.UseSpa(spa => { spa.Options.SourcePath = "ClientApp"; // Vue.js 项目路径 if (env.IsDevelopment()) { spa.UseVueCli(npmScript: "serve"); } }); ``` ### 通信机制 Vue.js 组件可以通过 `axios` 或 `fetch` 与 ASP.NET Core 后端进行通信。例如,在 Vue.js 中调用 API: ```javascript import axios from 'axios'; export default { data() { return { message: '' }; }, mounted() { axios.get('/SampleData/GetData') .then(response => { this.message = response.data.Message; }) .catch(error => { console.error('Error fetching data:', error); }); } }; ``` ### 路由配置 在 Vue.js 中,使用 `vue-router` 可以实现单页应用(SPA)的路由功能。安装并配置路由: ```bash npm install vue-router@4 ``` 创建 `router.js` 文件: ```javascript import { createRouter, createWebHistory } from 'vue-router'; import Home from './views/Home.vue'; const routes = [ { path: '/', component: Home } ]; const router = createRouter({ history: createWebHistory(), routes }); export default router; ``` 在 `main.js` 中引入路由: ```javascript import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App).use(router).mount('#app'); ``` ### 状态管理 对于复杂的状态管理,可以使用 `Vuex` 来管理全局状态。安装 `Vuex`: ```bash npm install vuex@next ``` 创建 `store.js` 文件: ```javascript import { createStore } from 'vuex'; const store = createStore({ state() { return { count: 0 }; }, mutations: { increment(state) { state.count++; } }, actions: { increment({ commit }) { commit('increment'); } }, getters: { count: state => state.count } }); export default store; ``` 在 `main.js` 中引入 `Vuex`: ```javascript import { createApp } from 'vue'; import App from './App.vue'; import store from './store'; createApp(App).use(store).mount('#app'); ``` ### 开源项目推荐 可以参考 `aspnetcore-Vue-starter` 项目,这是一个由 TrilonIO 维护的 ASP.NET Core 与 Vue.js 集成的启动模板。该项目集成了 Web API、Vuex 状态管理、热模块替换(HMR)等现代前端开发特性[^4]。 ### 相关问题 1. 如何在 ASP.NET Core 中配置 Vue.js 开发服务器? 2. 如何在 Vue.js 中调用 ASP.NET Core 提供的 RESTful API? 3. 如何在 Vue.js 中使用 Vuex 进行状态管理? 4. 如何在 ASP.NET Core 项目中引入 Vue CLI 并启用热模块替换? 5. 如何将 Vue.js 单页应用部署到 ASP.NET Core 服务器上?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值