ABP理论学习之内嵌资源文件
2015-12-25 23:08
281 查看
返回总目录
创建内嵌文件
暴露内嵌文件
使用内嵌文件
我们想要使这些文件在一个web应用中可用,首先,我们应该将想要暴露的文件标记为内嵌的资源。在这里,我选择了 metronic.js文件,右键打开属性面板(快捷键是F4)。
选中你想在web应用中使用的所有文件,将生成操作(build action)的属性值选为内嵌的 资源。
这行代码一般放在模块的Initialize方法中,下面解释一下这些参数:
第一个参数为这些文件定义了根文件夹,它匹配了根命名空间。
第二个参数定义了包含这些文件的程序集。本例中,我传入了包含这行代码的程序集。但你也可以传入任何包含内嵌资源的程序集。
最后一个参数定义了这些文件在程序集的根命名空间。它是“默认的命名空间”加上“文件夹名”。默认的命名空间一般和程序集的名字是相同的,但是在程序集的属性中进行更改。这里 ,默认的命名空间是Abp(已经更改了),因此Metronic文件夹的命名空间是“Abp.Zero.Web.UI.Metronic”。
ABP知道这是一个内嵌的资源,因而可以从之前暴露的dll中获得文件。此外,还可以在razor视图中使用HtmlHelper的扩展方法IncludeScript:
这会产生下面的代码:
唯一的不同就是参数v=635438748506909100。这样做的好处是阻止了浏览器端脚本的失败缓存。该值只有当你的dll重新生成(实际上是文件的最后写入时间)的时候才会改变,而且如果该值改变了,浏览器就不会缓存这个文件了。因此,建议使用IncludeScript方式。这对于非嵌入的物理资源也是有效的。对应于css文件,也存在相应的IncludeStyle方法。
本篇目录
介绍创建内嵌文件
暴露内嵌文件
使用内嵌文件
介绍
在一个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”。
使用内嵌文件
可以直接使用内嵌的资源:<script type="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")
这会产生下面的代码:
<script src="/AbpZero/Metronic/assets/global/scripts/metronic.js?v=635438748506909100" type="text/javascript"></script>
唯一的不同就是参数v=635438748506909100。这样做的好处是阻止了浏览器端脚本的失败缓存。该值只有当你的dll重新生成(实际上是文件的最后写入时间)的时候才会改变,而且如果该值改变了,浏览器就不会缓存这个文件了。因此,建议使用IncludeScript方式。这对于非嵌入的物理资源也是有效的。对应于css文件,也存在相应的IncludeStyle方法。
相关文章推荐
- 《FPGA全程进阶---实战演练》第八章之程序架构格式说明
- 功能测试机设计--硬件--信号调理--数字隔离 and 电平转换
- np.random.RandomState、np.random.rand、np.random.random、np.random_sample
- Ubuntu下搭建ASP.NET 5
- scanf的扫描集%[...]的正确使用方法
- 蓝懿iOS 技术内容和心得 12.25
- 查询来自不通地点的学生平均成绩,只显示平均成绩大于等于80的地区
- Android 打电话,发短信,调用系统浏览器
- Eclipse for android 实现代码自动提示智能提示功能
- 完成端口
- Synchronous ResponseHandler used in AsyncHttpClient
- linux上卸载jdk
- 【翻译自mos文章】在tkroof 中为什么物理读要比逻辑读要多
- 四步成为编程精英
- windows 下搭建 nodejs集成环境
- How to Install Java JDK in Kali Linux
- C# 文件的读取、写入和删除
- python general
- jsonp原来是这么回事,豁然开朗
- mathematica变分法和样条插值求解最小旋转曲面