本篇目录

  • 介绍
  • 创建内嵌文件
  • 暴露内嵌文件
  • 使用内嵌文件

介绍

在一个web应用中,有供客户端使用的javascript,css,xml等文件。它们一般是作为分离的文件被添加到web项目中并发布。有时,我们需要将这些文件打包到一个程序集(类库项目,一个dll文件)中,作为内嵌资源散布到程序集中。ABP提供了一个基础设施使得这个很容易实现。

创建内嵌文件

我们首先应该创建一个资源文件并把它标记为内嵌的资源。任何程序集都可以包含内嵌的资源文件。假设我们有一个叫做“Abp.Zero.Web.UI.Metronic.dll”程序集,而且它包含了javascript,css,和图片文件:

我们想要使这些文件在一个web应用中可用,首先,我们应该将想要暴露的文件标记为内嵌的资源。在这里,我选择了metronic.js文件,右键打开属性面板(快捷键是F4)。

选中你想在web应用中使用的所有文件,将生成操作(build action)的属性值选为内嵌的 资源

暴露内嵌文件

ABP使得暴露这些内嵌资源很容易,只需要一行代码:

WebResourceHelper.ExposeEmbeddedResources("AbpZero/Metronic", Assembly.GetExecutingAssembly(), "Abp.Zero.Web.UI.Metronic");

这行代码一般放在模块的Initialize方法中,下面解释一下这些参数:

  • 第一个参数为这些文件定义了根文件夹,它匹配了根命名空间。
  • 第二个参数定义了包含这些文件的程序集。本例中,我传入了包含这行代码的程序集。但你也可以传入任何包含内嵌资源的程序集。
  • 最后一个参数定义了这些文件在程序集的根命名空间。它是“默认的命名空间”加上“文件夹名”。默认的命名空间一般和程序集的名字是相同的,但是在程序集的属性中进行更改。这里 ,默认的命名空间是Abp(已经更改了),因此Metronic文件夹的命名空间是“Abp.Zero.Web.UI.Metronic”。

使用内嵌文件

可以直接使用内嵌的资源:

<scripttype="text/javascript"src="~/AbpZero/Metronic/assets/global/scripts/metronic.js"></script>

ABP知道这是一个内嵌的资源,因而可以从之前暴露的dll中获得文件。此外,还可以在razor视图中使用HtmlHelper的扩展方法IncludeScript:

@Html.IncludeScript("~/AbpZero/Metronic/assets/global/scripts/metronic.js")

这会产生下面的代码:

<scriptsrc="/AbpZero/Metronic/assets/global/scripts/metronic.js?v=635438748506909100"type="text/javascript"></script>

唯一的不同就是参数v=635438748506909100。这样做的好处是阻止了浏览器端脚本的失败缓存。该值只有当你的dll重新生成(实际上是文件的最后写入时间)的时候才会改变,而且如果该值改变了,浏览器就不会缓存这个文件了。因此,建议使用IncludeScript方式。这对于非嵌入的物理资源也是有效的。对应于css文件,也存在相应的IncludeStyle方法。

本文转自tkbSimplest博客园博客,原文链接:http://www.cnblogs.com/farb/p/ABPEmbeddedFile.html,如需转载请自行联系原作者

ABP理论学习之内嵌资源文件相关推荐

  1. 内嵌资源html,go 1.16 embed 实现资源文件(html, css, js等)内嵌

    Golang 发布1.16,如今通过//go:embed 注解内嵌资源文件并打包到二进制文件,关于//go:embed的使用网上很多教程,我想也不需要我在此在啰嗦一遍,今天的重点:用go开发网站时候内 ...

  2. vs2015c语言内嵌汇编,C#中内嵌资源的读取

    起因 作为一个从Cpper转到C#并且直接从事WPF开发的萌新来说,正式编码过程中碰到了不少问题,一路上磕磕碰碰的.因为软件设计需求上的要求,需要将一些配置文件(XML.INI等)内嵌到程序中,等需要 ...

  3. Android与iOS资源文件读写对比

    在开发中,算法配置文件是作为独立资源文件存在,初始化的时候读取到应用中,因此有必要对Android和iOS系统下的资源文件读写有一定的了解. 首先要搞清楚的一点是,我们在PC上开发时使用的所有资源,移 ...

  4. Razor Page Library:开发独立通用RPL(内嵌wwwroot资源文件夹)

    Demo路径:https://github.com/yanshengjie/RPL.Demo 1. Introduction Razor Page Library 是ASP.NET Core 2.1引 ...

  5. ABP理论学习之本地化

    本篇目录 应用语言 本地化资源 获取本地化文本 扩展本地化资源 最佳实践 应用语言 一个应用至少有一种UI语言,许多应用不止有一种语言.ABP为应用提供了一个灵活的本地化系统. 第一件事情就是声明支持 ...

  6. 11.6 如何使用内嵌资源类(ResourceRetriever)?

    获取类库(组件 或 装配件)的内嵌资源,一般返回的是字节流或文件流,在获取时还应该指定从哪个类库获取,如果未指定类库时,则类库是发起调用方法所在的类库. 所在组件:IBeamMDAACore.dll ...

  7. SpringBoot入门之内嵌Tomcat配置

    spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / .需要用到的就是端口.上下文路径的修改,在spring boot中其修改方 ...

  8. qrc路径_qrc 资源文件供外部使用的方法

    从入学之初就跟着师兄一起做一个 PyQt5 的项目,学到了很多东西.自从上次项目打包遇到资源文件处理难题之后,就开始慢慢在项目中引入 Qt 提供的 qrc 资源文件方案. 最近在系统地学 PySide ...

  9. golang将静态资源文件打包进二进制文件

    默认情况下,将项目打包成二进制的时候是不会加入静态资源文件的,因此在部署的时候还需要捎带上这些文件,比如,一些配置文件,图片,样式表等. 很多时候,这些静态文件是不需要变的,如果能一并加入到二进制文件 ...

最新文章

  1. R语言统计入门课程推荐——生物科学中的数据分析Data Analysis for the Life Sciences
  2. 怎么改mnist数据的标签_【Pytorch】多个数据集联合读取
  3. const的一些注意事项
  4. java 日期 减法_JAVA日期加减运算
  5. 首届Apache Hadoop技术社区中国Meetup在京举办(附PPT)
  6. 现代软件工程 作业 原型设计
  7. java中请求转发与重定向_JavaEE进阶 请求转发与请求重定向
  8. PowerBI 应用时间智能(生成日期表)
  9. 1-概述程序构成基本元素
  10. 我的blog终于开张啦 :)
  11. pythonATM,购物车项目实战_补充5-interface接口
  12. 基于单片机智能交通灯控制系统设计外文文献_【设计图文】单片机实现的步进电机控制系统(开题报告+论文+文献综述+外文翻译+DWG图纸)...
  13. 苹果鼠标滚轮驱动_苹果鼠标magic mouse在戴尔电脑Windows10系统上使用滚轮的方法...
  14. 并行网络测试软件,Manul:一款基于覆盖率引导的并行模糊测试工具
  15. 最大公约数简便算法_三种求最大公约数的方法
  16. 英特尔PX3网吧解决方案体验会在京举行(转)
  17. 利用DirectShow开发C#版的视频播放器
  18. vim的安装以及基础使用方法;
  19. 西安交通大学计算机张飞导师,航海学院邀请西安交通大学段战胜教授来院作学术报告...
  20. 深入理解Java7.pdf

热门文章

  1. git学习(五)分支操作和解决冲突
  2. python寻路_【PYTHON】a-start寻路算法
  3. python标准库time_python标准库介绍——12 time 模块详解
  4. linux(centos)系统安装activemq
  5. 微服务把多个模块服务 聚合成一个服务
  6. sqoop从mysql导入数据到hdfs_利用Sqoop将数据从数据库导入到HDFS
  7. sqlserver 两个数值字段相加_SQLServer 中多行数据合并成一行数据(一个字段)
  8. linux协议栈网桥部分之cam表操作,Docker网络基础 - Linux网桥工作原理与实现
  9. layu多个文件上传php,文件上传 · ThinkPHP6.0 · 看云
  10. Java 针对每个人安装的位置不同的情况 从快捷方式中获取到安装位置 运行谷歌浏览器