ABP理论学习之内嵌资源文件

简介:

本篇目录

介绍

在一个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方法。




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

目录
相关文章
|
监控 关系型数据库 MySQL
轻松入门MySQL:主键设计的智慧,构建高效数据库的三种策略解析(5)
轻松入门MySQL:主键设计的智慧,构建高效数据库的三种策略解析(5)
657 0
|
11月前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
585 3
|
11月前
|
移动开发 安全 测试技术
全新完整版H5商城系统源码
H5商城系统设置是实现商城基本功能的核心部分,涵盖了从网站配置、短信和支付配置,到商品、工单、订单、分站和提现管理等多个模块的设置。以下是详细的设置指南,帮助您快速上手并高效管理商城系统。 测试环境:Nginx+PHP7.0+MySQL5.6
243 2
|
前端开发 JavaScript Linux
分离前后端react和django3构建的应用
【6月更文挑战第4天】在本文中,我们介绍了如何设置React前端并连接到Django后端。并讨论了前后端分离的好处,并计划扩展API以支持更多HTTP操作和用户身份验证功能。
251 5
分离前后端react和django3构建的应用
创建目录mkdir,语法​mkdir [-p] Linux路径​,mkdir ~/test3在home下创建,mkdir ./x 当前目录创建 mkdir /home/xx,mkdir -p 通,必须
创建目录mkdir,语法​mkdir [-p] Linux路径​,mkdir ~/test3在home下创建,mkdir ./x 当前目录创建 mkdir /home/xx,mkdir -p 通,必须
|
安全 网络安全 虚拟化
VMware中安装Windows Server 2012系统
在VMware中安装Windows Server 2012系统
2354 2
|
关系型数据库 MySQL 网络安全
【MySQL进阶之路丨第五篇】MySQL Workbench 的安装与配置
【MySQL进阶之路丨第五篇】MySQL Workbench 的安装与配置
1278 0
|
弹性计算 Ubuntu 安全
阿里云服务器公共镜像、自定义镜像、共享镜像、云市场镜区别及选择参考
在我们购买阿里云服务器时,云服务器的操作系统指的是镜像,它为云服务器实例提供操作系统、初始化应用数据、预装的软件,通过镜像可以创建并部署云服务器实例,在选择时有公共镜像、自定义镜像、共享镜像、云市场镜、社区镜像这5中镜像可选,有的新手用户朋友并不知道它们有什么区别,可能不知道应该如何选择,本文就来介绍一下它们之间的区别及选择建议。
阿里云服务器公共镜像、自定义镜像、共享镜像、云市场镜区别及选择参考
|
机器学习/深度学习 人工智能 自然语言处理
GPT、BERT、XLM、GPT-2、BART…你都掌握了吗?一文总结文本生成必备经典模型(2)
GPT、BERT、XLM、GPT-2、BART…你都掌握了吗?一文总结文本生成必备经典模型
820 0
|
Android开发
泼辣修图2023最新版功能介绍及使用教程
看了看后台管理,发现修图软件比较受大家欢迎,所以今天我打算在更新一个修图软件泼辣修图!泼辣修图是一款深受用户喜爱的修图软件,所以今天为大家推荐这款修图APP,经过汉化,所有滤镜和工具都能免费用,无任何的廣搞! 无论你是入门新手还是摄影专家,泼辣修图都可以满足你的一切需求。对于入门新手而言,泼辣修图搭载的先进自动增强工具和富有创意的图像滤镜,可以帮助他们快速雕琢图像的每一个细节。对于摄影专家而言,图层混合、局部调整、曲线工具等等功能则是他们青睐有加的专业特性。
839 0