<<ABP文档>> 嵌入的资源文件_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > <<ABP文档>> 嵌入的资源文件

<<ABP文档>> 嵌入的资源文件

 2016/11/1 5:30:50  kid1412  程序员俱乐部  我要评论(0)
  • 摘要:文档目录本节内容:简介创建嵌入的文件暴露嵌入的文件使用嵌入的文件简介一个web应用里,客户端包含javascript,css,xml等文件,这此文件被添加到一个web项目后,发布成独立的文件,有时,我们需要把一些这样的文件打包入一个程序集(一个类库项目,一个Dll文件),并且作为嵌入式资源文件部署在这个程序集里,ABP提供了一个基础架构,方便地处理这件事。创建嵌入的文件我们首先要创建一个资源文件并把它标记为嵌入式资源,任何程序集都可以包含嵌入式资源文件,假设我们有一个名为“Abp
  • 标签:文档 文件 资源

文档目录

 

本节内容:

  • 简介
  • 创建嵌入的文件
  • 暴露嵌入的文件
  • 使用嵌入的文件

 

简介

一个web应用里,客户端包含javascript,css,xml等文件,这此文件被添加到一个web项目后,发布成独立的文件,有时,我们需要把一些这样的文件打包入一个程序集(一个类库项目,一个Dll文件),并且作为嵌入式资源文件部署在这个程序集里,ABP提供了一个基础架构,方便地处理这件事。

 

创建嵌入的文件

我们首先要创建一个资源文件并把它标记为嵌入式资源,任何程序集都可以包含嵌入式资源文件,假设我们有一个名为“Abp.Zero.Web.UI.Metronic.dll”的程序集,它包含javascript,css和图片文件:

我们想要在一个web应用里使用这些文件,首先,我们应该把想要暴露的文件的Build Action(生成操作)修改为Embedded Resource(嵌入的资源),我选择metronic.js文件,转到属性窗口(快捷键为F4)并修改它。

你应该在一个Web应用里,把所有你想要使用的文件的生成操作修改为嵌入的资源。

 

暴露嵌入的文件

ABP可以很容易地暴露嵌入的资源文件,只一行代码:

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

这段代码通常放在模块的Initial方法里,让我们解释一下它的参数:

  • 第一个参数定义文件的根目录,它与根命名空间匹配。
  • 第二个参数定义程序集包含的文件,在这个例子里,我传递了包含这段代码的程序集,但是你可以传递任何包含嵌入式资源的程序集。
  • 最后一个参数定义了在这个程序集里这些文件的根命名空间,它是“默认命名空间”+“在这个程序集里的目录”,默认命名空间通常与程序集名相同,但可以在程序集的属性里修改,这里,默认的命名空间是Abp(我修改了它),所以Metronic目录的命名空间是“Abp.Zero.Web.UI.Metronic"。

 

使用嵌入的文件

可以直接使用嵌入的文件:

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

ABP可以理解这是一个嵌入的文件并获取所有之前Dll暴露的文件,虽然它可以简单地工作,你可以在一个Razor视图里使用ABP的HtmlHelper扩展方法IncludeScript:

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

这将生成如下所示的脚本标签:

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

唯一不同的是v=635438748506909100参数,这将阻止浏览器的脚本的默认缓存,这个值仅当你的Dll重新生成(实质上,就是文件的最后修改时间)时发生改变,如果发生了改变,浏览器就不再缓存旧的,所以建议使用IncludeScript方式,同时它也可以用于非嵌入的物理文件,同样也有一个用于css文件的IncludeStyle方法。

 

发表评论
用户名: 匿名