文檔目錄
本節內容:
簡介
一個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方法裡,讓我們解釋一下它的參數:
使用嵌入的文件
可以直接使用嵌入的文件:
<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方法。