专栏首页一个爱瞎折腾的程序猿asp.net core合并压缩资源文件引发的学习之旅

asp.net core合并压缩资源文件引发的学习之旅

0. 在asp.net core中使用BuildBundlerMinifier合并压缩资源文件

在asp.net mvc中可以使用Bundle来压缩合并css,js 不知道的见:http://www.cnblogs.com/morang/p/7207176.html 在asp.net core中则可以使用BuildBundlerMinifier来进行css,js的压缩合并 新建一个core项目可以看到一个根目录下面有一个bundleconfig.json配置文件,看名字大概也猜到了几分,点开json文件中的链接,果然就是它~ 官方文档地址:https://docs.microsoft.com/zh-cn/aspnet/core/client-side/bundling-and-minification

好的。接下来跟着文档试试看

1. 在vs中下载安装扩展

重启vs2017,卧槽。一遍又一遍无响应(家里公司电脑都没有成功~)..幸好还有其他路可以走...

2. 使用NuGet安装 BuildBundlerMinifier

  • 使用命令dotnet add package BuildBundlerMinifier 或者 NuGet包管理器安装完毕
  • 重新生成项目
  • yes,成功,整个配置文件的配置一看就能明白:结合图看配置就知道是将inputFiles配置的条目资源压缩合并成outputFileName的资源

参数说明

-outputFileName:要输出的压缩文件的相对路径。 -必填 -inputFiles:要输出的压缩文件的相对路径。 - 可选,为空则输出空文件 - 空值会在空的输出文件。 支持组合模式 - 组合模式 栗子:"inputFiles": ["wwwroot/**/*(*.css|!(*.min.css)"] 将获取所有 CSS 文件,不包括缩减的文件模式。

-minify:压缩选项的配置 - 默认启用压缩,更多配置见BundlerMinifier-Wiki - 可选 -includeInProject:将生成的文件添加到项目文件 (默认的文件中也没有这个选项) - 文档写的是 默认false,在vs中转到定义查看是true 。囧,默认是没有这个参数的 -sourceMaps:生成捆绑的文件的源映射 -默认false

3.根据不同环境使用不同的css/js

使用新增的environment标签去根据不同的环境引入不同的css文件

ok,可以的,那么问题来了

.net core的Development,Staging,Production这几个环境变量在哪里配置呢?

三个环境分别对应 开发 测试 生成,详情见文档(划重点):https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments 简单描述之:项目右键->属性->调试->环境变量->>>一张图说明

然后发现原来调试信息什么的都是放到launchSettings.json中~ 将环境变量ASPNETCORE_ENVIRONMENT的值修改为Production后,运行起来,总算完成了

文档中有说需要注意的地方

在 Windows 和 macOS 上,指定的环境名称是区分大小写。 是否将变量设置为Development或development或DEVELOPMENT结果将是相同的。但是,Linux 是区分大小写默认情况下的操作系统。环境变量、文件名和设置需要区分大小写。

命令行设置环境变量

  • cmd:set ASPNETCORE_ENVIRONMENT=Development
  • PowerShell:$Env:ASPNETCORE_ENVIRONMENT = "Development"
  • macOS、Linux:运行时指定ASPNETCORE_ENVIRONMENT=Development dotnet run
  • linux 设置计算机级别的环境变量需将export ASPNETCORE_ENVIRONMENT=Development写入.bashrc或.bash_profile文件

在关于环境变量的底部也说明了如何获取当前的运行时环境

可通过IHostingEnvironment接口的扩展直接判断环境

使用

总结

收获颇多,明确了目标,之前模糊畏难的东西也逐个解决了

  • .net core 如何合并压缩js
  • .net core 如何在不同的环境使用不同的资源
  • .net core的环境变量如何配置

参考文档

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用travis-ci自动部署github上的项目

    如下图所示,根据需要配置构建信息 添加github的Token到环境变量中,用户名,邮箱也可添加进去,这样配置文件中就可以使用了 生成Token见步骤5...

    易墨
  • vue项目实践-添加axios封装api请求

    axios 默认提交格式为:application/json 可使用 qs 模块(需要安装)转换后提交格式为 application/x-www-form-u...

    易墨
  • 三行脚本让 asp.net core 附加进程调试不再头痛

    在将项目升级到 asp.net core 2.2 后,很少使用 IIS Express 运行项目了,基本都是控制台运行或者写个脚本批量启动要运行的接口(多个输出...

    易墨
  • Qt5.12 + OpenGL 创建第一个多边形Core版

    https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/

    用户5908113
  • linux core文件机制

    在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所...

    一见
  • Linux下使用gdb调试core文件

    当程序运行过程中出现Segmentation fault (core dumped)错误时,程序停止运行,并产生core文件。core文件是程序运行状态的内存映...

    Dabelv
  • linux下core file size设置笔记

    现象说明:突然发现一台测试机器的java程序莫名其妙地没了,但是没有core dump!这就需要打开服务器的core文件生成的功能了,(即core dump文件...

    洗尽了浮华
  • linux 下 core 相关知识总结

    在以往的测试过程中,每当遇到程序出现coredump的状况,我的第一反应就是有bug,让开发定位原因,但是如果自己能够去挖掘原因,在与开发沟通的过程中能明确指出...

    易惠芳
  • CMake 进行调试

    在 Linux 下开发,可以用 gdb 进行调试,但是如果工程是用 CMake 构建的,那么需要在 CMakeLists.txt 中加入如下代码:

    Frank909
  • 如何快速定位找出SEGV内存错误的程序Bug

    通过查看php日志/usr/local/php/var/log/php-fpm.log,有如下警告信息:

    sunsky

扫码关注云+社区

领取腾讯云代金券