在添加捆绑包之后应用捆绑包转换

时间:2015-09-09 10:47:39

标签: c# asp.net asp.net-mvc asp.net-bundling

我有以下设置

public class TrackingTransform : IBundleTransform
{
    public void Process(BundleContext context, BundleResponse response)
    {
        const string apiTokenPlaceHolder = "{{ApiToken}}";
        var token = ConfigurationManager.AppSettings["Token"];

        response.Content = response.Content.Replace(apiTokenPlaceHolder, token);
    }
}

将变换添加到我的包

var trackingBundle = new ScriptBundle("~/bundles/tracking/global").Include(
            "~/Scripts/mdb.mixpanel.js",
            "~/Scripts/mdb.tracking.global-handlers.js"
            );

        trackingBundle.Transforms.Add(new TrackingTransform());
        bundles.Add(trackingBundle);

然后我在视图中引用这个包

@Scripts.Render("~/bundles/tracking/global")

调试时我可以看到{{ApiToken}}response.Content中的正确值替换,但是当我在浏览器中查看脚本时,我仍然看到原始占位符。

我注意到bundles.Add(trackingBundle)Process()方法之前执行,这可能是导致问题的原因。但是,我似乎无法找出为什么会发生这种情况以及如何解决它。

我最初关注this article即使是微软的docs建议同样的事情

0 个答案:

没有答案