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”。
使用内嵌文件
可以直接使用内嵌的资源:
<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理论学习之内嵌资源文件相关推荐
- 内嵌资源html,go 1.16 embed 实现资源文件(html, css, js等)内嵌
Golang 发布1.16,如今通过//go:embed 注解内嵌资源文件并打包到二进制文件,关于//go:embed的使用网上很多教程,我想也不需要我在此在啰嗦一遍,今天的重点:用go开发网站时候内 ...
- vs2015c语言内嵌汇编,C#中内嵌资源的读取
起因 作为一个从Cpper转到C#并且直接从事WPF开发的萌新来说,正式编码过程中碰到了不少问题,一路上磕磕碰碰的.因为软件设计需求上的要求,需要将一些配置文件(XML.INI等)内嵌到程序中,等需要 ...
- Android与iOS资源文件读写对比
在开发中,算法配置文件是作为独立资源文件存在,初始化的时候读取到应用中,因此有必要对Android和iOS系统下的资源文件读写有一定的了解. 首先要搞清楚的一点是,我们在PC上开发时使用的所有资源,移 ...
- Razor Page Library:开发独立通用RPL(内嵌wwwroot资源文件夹)
Demo路径:https://github.com/yanshengjie/RPL.Demo 1. Introduction Razor Page Library 是ASP.NET Core 2.1引 ...
- ABP理论学习之本地化
本篇目录 应用语言 本地化资源 获取本地化文本 扩展本地化资源 最佳实践 应用语言 一个应用至少有一种UI语言,许多应用不止有一种语言.ABP为应用提供了一个灵活的本地化系统. 第一件事情就是声明支持 ...
- 11.6 如何使用内嵌资源类(ResourceRetriever)?
获取类库(组件 或 装配件)的内嵌资源,一般返回的是字节流或文件流,在获取时还应该指定从哪个类库获取,如果未指定类库时,则类库是发起调用方法所在的类库. 所在组件:IBeamMDAACore.dll ...
- SpringBoot入门之内嵌Tomcat配置
spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / .需要用到的就是端口.上下文路径的修改,在spring boot中其修改方 ...
- qrc路径_qrc 资源文件供外部使用的方法
从入学之初就跟着师兄一起做一个 PyQt5 的项目,学到了很多东西.自从上次项目打包遇到资源文件处理难题之后,就开始慢慢在项目中引入 Qt 提供的 qrc 资源文件方案. 最近在系统地学 PySide ...
- golang将静态资源文件打包进二进制文件
默认情况下,将项目打包成二进制的时候是不会加入静态资源文件的,因此在部署的时候还需要捎带上这些文件,比如,一些配置文件,图片,样式表等. 很多时候,这些静态文件是不需要变的,如果能一并加入到二进制文件 ...
最新文章
- R语言统计入门课程推荐——生物科学中的数据分析Data Analysis for the Life Sciences
- 怎么改mnist数据的标签_【Pytorch】多个数据集联合读取
- const的一些注意事项
- java 日期 减法_JAVA日期加减运算
- 首届Apache Hadoop技术社区中国Meetup在京举办(附PPT)
- 现代软件工程 作业 原型设计
- java中请求转发与重定向_JavaEE进阶 请求转发与请求重定向
- PowerBI 应用时间智能(生成日期表)
- 1-概述程序构成基本元素
- 我的blog终于开张啦 :)
- pythonATM,购物车项目实战_补充5-interface接口
- 基于单片机智能交通灯控制系统设计外文文献_【设计图文】单片机实现的步进电机控制系统(开题报告+论文+文献综述+外文翻译+DWG图纸)...
- 苹果鼠标滚轮驱动_苹果鼠标magic mouse在戴尔电脑Windows10系统上使用滚轮的方法...
- 并行网络测试软件,Manul:一款基于覆盖率引导的并行模糊测试工具
- 最大公约数简便算法_三种求最大公约数的方法
- 英特尔PX3网吧解决方案体验会在京举行(转)
- 利用DirectShow开发C#版的视频播放器
- vim的安装以及基础使用方法;
- 西安交通大学计算机张飞导师,航海学院邀请西安交通大学段战胜教授来院作学术报告...
- 深入理解Java7.pdf
热门文章
- git学习(五)分支操作和解决冲突
- python寻路_【PYTHON】a-start寻路算法
- python标准库time_python标准库介绍——12 time 模块详解
- linux(centos)系统安装activemq
- 微服务把多个模块服务 聚合成一个服务
- sqoop从mysql导入数据到hdfs_利用Sqoop将数据从数据库导入到HDFS
- sqlserver 两个数值字段相加_SQLServer 中多行数据合并成一行数据(一个字段)
- linux协议栈网桥部分之cam表操作,Docker网络基础 - Linux网桥工作原理与实现
- layu多个文件上传php,文件上传 · ThinkPHP6.0 · 看云
- Java 针对每个人安装的位置不同的情况 从快捷方式中获取到安装位置 运行谷歌浏览器