[英]JS & CSS minify & combine using Xpedite
我找到了一个名为Xpedite的库。 该项目的URL为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>
一切工作正常,但我始终必须在.aspx页面级别定义JS&CSS文件。 也许有时候我想从后台添加我的JS和CSS。 我找不到办法,所以如果有人知道它,请与我分享知识或下载该项目并检查...我检查了但什么也没发现。
我不是高级开发人员,但是我需要从后面的代码中将JS文件包装在CompositeResource中。
您可以尝试RequestReduce库。 该库提供与Xpedite相同的功能,并将最小化并合并您的css和javascript文件。 它还可以激发您的CSS背景图像。 使用RequestReduce,您的资源是在aspx还是背后的代码中定义都没有关系。 无论哪种方式,只要流到浏览器的html都包含带有javascript和css文件的链接和脚本标签,RequestReduce就会对其进行处理。
您是否尝试过使用.Net的ClientDependencyFramework ? 我相信它可以完成类似的工作,但也可以让您从后台代码中注册文件
添加答案以供参考:
要从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);
}
或者,如果已为该资源指定了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项目出现问题,添加对'EmeddedResource'的支持相对容易(尽管我计划在不久的将来将其移至GitHub)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.