首页 > 编程语言 >在asp.net core中使用vue3+vite(起)

在asp.net core中使用vue3+vite(起)

时间:2023-07-05 14:24:40浏览次数:37  
标签:core vue 站点 asp vite vue3 net 运行

前言

一开始是一个自用的应用,原本是用razor写的。最近有了点新想法,加点新功能,但是我接触的项目基本都是vue+api的前后端分离,用这razor写的是真不习惯,最后决定还是用习惯的vue重写。

之前尝试过在.net core里使用vue2+webpack,毕竟实际上就是把.vue翻译成了.js来用,一个站点就能跑。但是vite不同于webpack的实在想不到怎么弄到.net core里来。

另外我的前端不太行,对于vue基本上只会写,不会搭。有些东西搞错了敬请谅解。

环境

  • .net 6
  • pnpm 8.6.1
  • Visual Studio 2022 17.4

步骤

  1. 创建新项目,使用React的模板:
    image

  2. ClientApp文件夹下,就是React相关的内容,删掉这个文件夹,然后在项目目录下执行
    pnpm create vite 参考官网,Project Name就用ClientApp(可以改,但是没必要,不然相应的.net core的部分也要改)然后后面选择vue + typescript,直接一手鸠占鹊巢

  3. 打开项目文件.csproj,可以看到内容比普通的项目文件多很多。

    • <SpaRoot>[SpaRoot]</SpaRoot>,可以看到这里就是ClientApp,如果上面创建project name不是ClientApp,这里就要相应的修改了

    • <SpaProxyServerUrl>[SpaProxyServerUrl]</SpaProxyServerUrl>,这里面的[SpaProxyServerUrl]就是vue运行用的url,把port改成vite默认的5173,即可。当vite.config.ts中配置了其他端口时,这里要与之一致。

    • <SpaProxyLaunchCommand>[SpaProxyLaunchCommand]</SpaProxyLaunchCommand>,运行用的命令,这里npm start是原react模板生成的package.json里的;现在换成pnpm run dev即可

    • <DistFiles Include="$(SpaRoot)build\**" /> 改成<DistFiles Include="$(SpaRoot)dist\**" />

3.5 若项目目录下没有wwwroot文件夹,手动创建。

4.调试运行:会先后启动2个站点,一个是.net core,一个是vue。

5.发布:正常生成发布文件即可。

扩展

首先,调试运行会出现一个cmd,执行了pnpm run dev([SpaProxyLaunchCommand]),而Program.cs 里的

app.UseStaticFiles();
// ....
app.MapFallbackToFile("index.html");

这两句代码,前者对应的wwwroot文件夹是空的,后者需要的index.html更是不存在(wwwroot),那么我对这两句代码进行一个释的注,调试运行果然依然正常。

然后是这个 Microsoft.AspNetCore.SpaProxy 。从Program.cs没有这个库的一丝踪迹,应该是写在什么了看不见的地方
在 ASP.NET Core 中使用承载启动程序集

通过 IHostingStartup(承载启动)实现,在启动时从外部程序集向应用添加增强功能。 例如,外部库可使用承载启动实现为应用提供其他配置提供程序或服务。。

而通过调试运行的时候,可以看到是net core的站点会先显示Launching the SPA proxy...,然后跳转到vue站点。但是发布运行,却是直接显示vue的首页。我直接对发布包里的Microsoft.AspNetCore.SpaProxy.dll进行一个除的删,果然站点仍然能够正常运行。

小结

在调试运行时,通过Microsoft.AspNetCore.SpaProxy支持站点运行。

生成发布包后,通过app.UseStaticFiles();就可以支持站点运行(访问/index.html即可)。

扩展里总结了一些内容,发现这里基本上都有

标签:core,vue,站点,asp,vite,vue3,net,运行
From: https://www.cnblogs.com/sigeer0-o/p/17526285.html

相关文章

  • 08:vue3 组件基础
    定义一个组件在components文件夹下新建MyComponent.vue组件 写入下面代码1<script>2exportdefault{3data(){4return{5count:06}7}8}9</script>1011<template>12<button@click="count++">我被点击了{......
  • .net Core Api 注入 Microsoft.Extensions.Logging
    ILoggerAdapter.csusingSystem;usingSystem.Collections.Generic;usingSystem.Text;publicinterfaceILoggerAdapter<T>{////Summary://Formatsandwritesaninformationallogmessage.////P......
  • .net Core Winform 增加NLog
    nlog.config<?xmlversion="1.0"encoding="utf-8"?><nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><targetsasync=&quo......
  • .net Core API 添加 NLog
    nlog.config<?xmlversion="1.0"encoding="utf-8"?><nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"autoReload="true"......
  • asp.net core如何获取客户端IP地址
    客户端直接访问服务器直接通过HttpContext.Connection.RemoteIpAddress获取客户端Ip[HttpGet][Route("GetClientIP")]publicasyncTask<IActionResult>GetClientIP(){ varip4=HttpContext.Connection.RemoteIpAddress.MapToIPv4(); returnOk(ip4.ToString());}客......
  • vue-cropper cdn vue3 打包后提示找不到
    vue-croppercdnvue3打包后bug vue3项目tscdn引入  vue-cropper官网推荐引入方式   dev环境报错运行不了后面发现打包后找不到  VueCropper,原来是名称问题, 修改如下:main.ts直接引入 再添加脚本到html文件window.VueCropper=window['vue-cropper'......
  • Metasploit - Meterpreter研究
    一、meterpreter简介Meterpreter是一个功能强大的远程控制框架,常用于渗透测试和网络攻击中。它是Metasploit框架的一部分,Metasploit是一个流行的开源渗透测试工具集。Meterpreter提供了一个灵活的、模块化的平台,使攻击者能够在受攻击的系统上执行各种操作。Meterpreter具......
  • vue3+tiff.js展示tif文件
    vue3+tiff.js展示tif文件场景:tif格式的文件需要在页面上预览(预览的tif文件较小)组件:tiff.jsnpminstalltiff.js组件引入:import'tiff.js';注意:网络上的信息引入使用importTifffrom'tiff.js'  但是实际测试这样会报错: 看源码发现只需要直接import即可获......
  • Vue-CoreVideoPlayer使用
    介绍Vue-CoreVideoPlayer一款基于vue.js的轻量级的视频播放器插件。采用AdobdXD进行UI设计,支持移动端适配,不仅功能强大,颜值也是超一流!Vue-CoreVideoPlayer的说明文档和sample都很完善,上手十分容易。该组件也保持了和原生HTMLVideo属性配置的对接,可定制性很高。播放器......
  • 哪里需要写哪里,FromServices注入 — ASP.NET CORE
    宗旨:用最少的字,学会最有用的知识!愿景目标:阅读本文您将学会如何运用FromServices的方式进行依赖注入。例子背景:以电脑主机为例子进行讲解,我的电脑主机可以接入外置设备,如:键盘、鼠标。那么键盘又分:PS/2接口类型、USB接口类型、无线类型。鼠标也一样。你在用到ASP.NETCORE依赖注......