首页 前端知识 如何升级 Blazor Asp.net Identity 脚手架自带的 jQuery ,jQuery Validation, Unobtrusive validation 版本,去掉CDN

如何升级 Blazor Asp.net Identity 脚手架自带的 jQuery ,jQuery Validation, Unobtrusive validation 版本,去掉CDN

2024-03-26 08:03:18 前端知识 前端哥 956 793 我要收藏

 首先来个卸载,安装,升级三部曲,我们升级一下脚手架的版本

dotnet tool uninstall -g dotnet-aspnet-codegenerator
dotnet tool install -g dotnet-aspnet-codegenerator
dotnet tool update -g dotnet-aspnet-codegenerator

然后可以看看安装了哪个版本

dotnet tool list -g

可以看到类型结果

Package Id             Version      Commands
------------------------------------------------
dotnet-aspnet-codegenerator      8.0.1      dotnet-aspnet-codegenerator

 然后我们看看脚手架的具体用法

Usage: aspnet-codegenerator [arguments] [options]

Arguments:
  generator  Name of the generator. Check available generators below.

Options:
  -p|--project             Path to .csproj file in the project.
  -n|--nuget-package-dir   
  -c|--configuration       Configuration for the project (Possible values: Debug/ Release)
  -tfm|--target-framework  Target Framework to use. (Short folder name of the tfm. eg. net46)
  -b|--build-base-path     
  --no-build               

Selected Code Generator: identity

Generator Options:
  --dbContext|-dc      : Name of the DbContext to use, or generate (if it does not exist).
  --files|-fi          : List of semicolon separated files to scaffold. Use the --list-files option to see the available options.
  --listFiles|-lf      : Lists the files that can be scaffolded by using the '--files' option.
  --userClass|-u       : Name of the User class to generate.
  --useSqLite|-sqlite  : Flag to specify if DbContext should use SQLite instead of SQL Server.
  --force|-f           : Use this option to overwrite existing files.
  --useDefaultUI|-udui : Use this option to setup identity and to use Default UI.
  --layout|-l          : Specify a custom layout file to use.
  --generateLayout|-gl : Use this option to generate a new _Layout.cshtml

具体参考官网

然后,关键的东西来了,如果你的项目是 .net 7 创建的,请务必要把 Microsoft.AspNetCore.Identity.UI 这个库升级到 7.0.16

这个库版本下的 jquery.validate.min.js 已经升级到了 v1.19.5
然后用 脚手架 生成一个关键的 Blazor 页面,需要先 cd 到项目路径,然后执行命令,以我为例,项目路径是 “D:\IloveCode\acl\CTC”

PM> cd D:\IloveCode\acl\CTC
PM> dotnet aspnet-codegenerator identity --useDefaultUI
Building project ...
Finding the generator 'identity'...
Running the generator 'identity'...
RunTime 00:00:12.48

特别要加上 参数 --useDefaultUI,这时候会在项目下生成这个文件

修改一下这个文件里面的路径,对比如下,右边是修改好的,替换CDN为本地路径

这个时候我们把网站发布,并运行起来

可以看到,之前默认的CDN已经没有了。由于 /Identity/lib/xxx 这个路径是编译运行动态生成,发布时也是动态生成的,所以我们在编译的时候不能替换他的 jquery, jquery.validate, jquery.validate.unobtrusive 这些库,因为这些库来自 Microsoft.AspNetCore.Identity.UI 这个库的内嵌资源文件,所以要想升级这些 js 库的版本,只能去升级 Microsoft.AspNetCore.Identity.UI ,比如我这次就从 3.0 一口气升级到了 7.0.16


上面这是一种升级方式,还有一种方法就是发布以后,用你下载的js文件去覆盖掉这些文件,就是 wwwroot 下的 Identity 下的 lib 这些文件,包括 bootstrap 都可以覆盖升级。当然这种方法可以非常彻底的解决问题,不会依赖  Microsoft.AspNetCore.Identity.UI 版本,想用哪个js版本手动覆盖就行了,缺点就是每次发布以后都要手动覆盖一次,比较费事。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/4173.html
评论
会员中心 联系我 留言建议 回顶部
复制成功!