<<ABP文檔>> 內嵌資源檔案

來源:互聯網
上載者:User

標籤:瀏覽器   exe   目錄   razor   images   圖片   back   mbed   程式集   

文檔目錄

 

本節內容:

  • 簡介
  • 建立內嵌檔案
  • 暴露內嵌檔案
  • 使用內嵌檔案

 

簡介

一個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方法裡,讓我們解釋一下它的參數:

  • 第一個參數定義檔案的根目錄,它與根命名空間匹配。
  • 第二個參數定義程式集包含的檔案,在這個例子裡,我傳遞了包含這段代碼的程式集,但是你可以傳遞任何包含嵌入式資源的程式集。
  • 最後一個參數定義了在這個程式集裡這些檔案的根命名空間,它是“預設命名空間”+“在這個程式集裡的目錄”,預設命名空間通常與程式集名相同,但可以在程式集的屬性裡修改,這裡,預設的命名空間是Abp(我修改了它),所以Metronic目錄的命名空間是“Abp.Zero.Web.UI.Metronic"。

 

使用內嵌檔案

可以直接使用內嵌檔案:

<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方法。

 

<<ABP文檔>> 內嵌資源檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.