2011-12-05 67 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'的支持相对比较容易。