2011-12-05 98 views
1

我找到一個名爲Xpedite的庫。該項目的URL是http://xpedite.codeplex.com。從這裏任何人都可以通過樣本下載該項目。我檢查了這個庫,它很好。JS&CSS使用Xpedite縮小和合並

用戶只需要包js文件名與頁面這樣的:

<xpedite:CompositeResourcePlaceholder runat="server" /> 

<xpedite:CompositeResource runat="server" Type="Css" ReferenceName="jquery-ui"> 
    <xpedite:Resource Url="/Styles/Site.css" /> 
    <xpedite:Resource Url="/Styles/jquery.ui.accordion.css" /> 
    <xpedite:Resource Url="/Styles/jquery.ui.all.css" /> 
</xpedite:CompositeResource> 

<xpedite:CompositeResource runat="server" Type="JavaScript" ReferenceName="jquery-ui"> 
    <xpedite:Resource Url="/Scripts/jquery-1.4.2.js" /> 
    <xpedite:Resource Url="/Scripts/jquery.ui.core.js" /> 
    <xpedite:Resource Url="/Scripts/jquery.ui.tabs.js" /> 
</xpedite:CompositeResource> 

一切工作正常,但我總是要定義.aspx頁面中水平JS & CSS文件。也許有時我想從代碼隱藏中添加我的JS & CSS。我發現沒有辦法做到這一點, 所以如果有人知道它,那麼請與我分享知識或下載項目和檢查...我檢查了它,但什麼都沒發現。

我不是一個高級開發人員,但我需要從後面的代碼中包裝CompositeResource中的JS文件。

回答

3

你可以試試RequestReduce庫。這個庫提供了與Xpedite相同的功能,並將縮小和組合您的css和javascript文件。它也可以精煉你的CSS背景圖像。使用RequestReduce,您的資源是否定義在aspx或代碼隱藏中並不重要。無論哪種方式,只要流入瀏覽器的html包含帶有javascript和css文件的鏈接和腳本標記,RequestReduce就會處理它們。作參考之用

+0

當然我會看看。謝謝 –

2

您是否嘗試過使用.Net的ClientDependencyFramework來代替?它做了一個類似的工作,我相信,但也可以讓你註冊代碼隱藏文件

+0

當然我會看看。謝謝 –

0

添加答案:

要從代碼隱藏註冊複合資源,你可以在Page_Init添加CompositeResource控制的新實例如下:

代碼隱藏

protected void Page_Init(Object sender, EventArgs e) 
{ 
    var resource = new CompositeResource { Type = ResourceType.Css, ReferenceName = "CodeBehind"}; 

    resource.Resources.Add(new Resource { Url = "/Styles/Site.css"}); 
    resource.Resources.Add(new Resource { Url = "/Styles/jquery.ui.accordion.css"}); 

    Page.Controls.Add(resource); 
} 

或者,您可以選擇擴展現有CompositeResource(如果該資源已獲得ID):

ASPX

<xpedite:CompositeResource runat="server" Type="Css" ReferenceName="jquery-ui" ID="MyCompositeResource"> 

代碼隱藏

protected void Page_Init(Object sender, EventArgs e) 
{ 
    MyCompositeResource.Resources.Add(new Resource { Url = "/Styles/jquery.ui.theme.css" }); 
} 

如果你是動態的飛行生成CSS/JavaScript和嘗試包括它在一個複合資源,該功能目前不支持。儘管CodePlex項目打開了一個問題(儘管我計劃在不久的將來將其移至GitHub),但添加對'EmeddedResource'的支持相對比較容易。