返回总目录


本篇目录

介绍###

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

ABP理论学习之内嵌资源文件的更多相关文章

  1. ABP官方文档翻译 6.5 内嵌资源文件

    内嵌资源文件 介绍 创建内嵌文件 xproj/project.json形式 csproj形式 添加内嵌资源管理器 使用内嵌视图 使用内嵌资源 ASP.NET Core 配置 忽略文件 重写内嵌文件 介 ...

  2. ABP文档 - 嵌入的资源文件

    文档目录 本节内容: 简介 创建嵌入的文件 暴露嵌入的文件 使用嵌入的文件 简介 一个web应用里,客户端包含javascript,css,xml等文件,这此文件被添加到一个web项目后,发布成独立的 ...

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

    ASP.NET Core知多少系列:总体介绍及目录 Demo路径:GitHub-RPL.Demo 1. Introduction Razor Page Library 是ASP.NET Core 2. ...

  4. ABP框架系列之二十五:(Embedded-Resource-Files-嵌入式资源文件)

    Introduction ASP.NET Boilerplate provides an easy way of using embedded Razor views (.cshtml files) ...

  5. (新年快乐)ABP理论学习之本地化(2016第一篇)

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

  6. ABP理论学习之Javascript API(理论完结篇)

    返回总目录 本篇目录 Ajax Notification Message UI block和busy 事件总线 Logging 其他工具功能 说在前面的话 不知不觉,我们送走了2015,同时迎来了20 ...

  7. WPF 杂谈——资源文件

    编写一个应用难免要用到WPF本身的控件.不管是WinForm还是网页都会有自己的控件.只是在写法和用法上有所不同而以.而控件命名却离不开那几个单词.所以不用担心判断不出来哪个是按扭,哪个是文本框.举个 ...

  8. C#中内嵌资源的读取

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

  9. SpringBoot入门之内嵌Tomcat配置

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

随机推荐

  1. 【JavaScript】ES6 新语法

    function* 声明 function* 声明(function关键字后跟一个星号)定义一个generator(生成器)函数,返回一个Generator对象. 生成器是一种可以从中退出并在之后重新 ...

  2. Oracle跟踪文件

    1.跟踪文件分类 1)计划内的.由用户请求所产生的跟踪文件 2)计划外的.数据库服务器自动产生的跟踪文件 2.计划内的.由用户请求所产生的跟踪文件 2.1 生成 ①alter session set ...

  3. WPF时间格式化

    日期格式化示例: <TextBox  Name="txtCreateTime" HorizontalAlignment="Left" Width=&quo ...

  4. UWP学习记录7-设计和UI之控件和模式4

    UWP学习记录7-设计和UI之控件和模式4 1.翻转视图 使用翻转视图浏览集合中的图像或其他项目(例如相册中的照片或产品详细信息页中的项目),一次显示一个项目. 对于触摸设备,轻扫某个项将在整个集合中 ...

  5. linux中redis安装

    一.登录redis官网下载redis-3.0.7.tar.gz 二.通过ftp工具上传至自己的服务器中 三.tar -zxvf redis-3.0.7.tar.gz解压 四.cd redis-3.0. ...

  6. Jsonp跨域

    Jsonp.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  7. Sprint计划

    团队: 郭志豪:http://www.cnblogs.com/gzh13692021053/ 杨子健:http://www.cnblogs.com/yzj666/ 刘森松:http://www.cnb ...

  8. BZOJ 2152 & 点分治

    Description: 只是打法法塔前测试一下板子 Code: /*================================= # Created time: 2016-04-20 14:3 ...

  9. Liquid Exception: Included file '_includes/customizer-variables.html' not found in assets/bootstrap/docs/customize.html 解决方案

    执行下面这句话即可 rm -rf source/assets/bootstrap/docs/

  10. python os.path模块

    os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回list(多个路径) ...