JS& CSS缩小&使用Xpedite结合使用

时间:2011-12-05 12:49:30

标签: javascript css minify

我找到了一个名为Xpedite的库。项目的网址是http://xpedite.codeplex.com。从这里,任何人都可以下载带有样本的项目。我检查了这个库,这很好。

用户只需要用以下页面包装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>

一切都很好但我总是要定义JS&amp; .aspx页面级别的CSS文件。也许有时候我想添加我的JS&amp;代码隐藏的CSS。我发现没有办法, 所以,如果有人知道,那么请与我分享知识或下载项目并检查......我检查了但没有找到任何结果。

我不是高级开发人员,但我需要从后面的代码中包装CompositeResource中的JS文件。

3 个答案:

答案 0 :(得分:3)

您可以试试RequestReduce库。该库提供与Xpedite相同的功能,并将缩小和组合您的CSS和JavaScript文件。它还可以精灵你的CSS背景图像。使用RequestReduce,无论您的资源是在aspx还是代码隐藏上定义,都无关紧要。无论哪种方式,只要流式传输到浏览器的html包含带有javascript和css文件的链接和脚本标记,RequestReduce就会处理它们。

答案 1 :(得分:2)

您是否尝试过使用.Net的ClientDependencyFramework?我相信它做了类似的工作,但也允许你从代码隐藏

注册文件

答案 2 :(得分:0)

添加答案以供参考:

要从CodeBehind注册复合资源,可以在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'的支持会相对容易。