2

我阅读了Scott Gu关于 ASP .NET 4.5 中对捆绑和缩小的内置支持的文章。

但是没有提到嵌入式资源,这是一个遗憾。

过去,我一直在使用一个名为Client Dependency Framework的 Codeplex 项目,它支持嵌入式资源。

对我来说似乎是一个很大的遗漏。是否计划支持?

4

3 回答 3

3

我很确定你可以编写自己的转换器来处理这个问题。

  1. 创建一个实现 System.Web.Optimization.IBundleTransform 的类。
  2. 然后在Process方法中获取嵌入资源的内容。这应该不会太难。这篇博文可能会有所帮助。
  3. 然后将转换添加到包中。

例如

var bundle = new Bundle("~/Test").Include("~/Content/Site.css");
bundle.Transforms.Add(new EmbeddedResourceTransformer());

请注意,我使用的是System.Web.Optimization中的 nuget 包,而不是Microsoft.Web.Optimization (我不知道为什么有两种不同的命名空间实现,以及两者的语法是否相同)。

我也不能保证这样做的性能,而不是文件系统。

希望有帮助!

于 2012-06-13T15:09:45.967 回答
2

由于我没有足够的代表,因此仅对上述答案进行了一些评论。直接评论...

Hainesy 的回答建议使用 BundleTransform。我认为这在包含嵌入式资源的过程中为时已晚。BundleTransform 有助于在从原始文件中提取内容之后并将它们放入捆绑文件之前转换 css 或 javascript 中的内容。例如,如果您需要修改 CSS 中的图像 URL,以指向 dev 的本地相对 url 和生产的 CDN url。

user960567 的链接解释了如何使用嵌入式资源,但有一个问题。该过程仅适用于其他项目中使用的通用控件之类的东西。
例如,如果您创建一个需要 CSS 和 JS 的文本框,那么它允许您在公共项目中创建一个 HTML 帮助程序,该帮助程序将添加文本框和将嵌入资源拉入页面的脚本标签。它不允许您将嵌入式资源从公共项目中拉到另一个项目中的包中。这基本上将为每个嵌入式资源创建一个单独的脚本或样式标签,这可能不是您想要的(至少它不是我想要的。)

于 2013-11-26T14:11:24.230 回答
-3

我已经写了一篇详细的文章,介绍如何在这里使用捆绑和缩小技术来包装您的外部资源

于 2014-11-07T12:48:44.520 回答