gpt4 book ai didi

asp.net 4.5 脚本 bundler 不捆绑不缩小

转载 作者:行者123 更新时间:2023-12-04 21:18:56 27 4
gpt4 key购买 nike

我将一个项目从 asp.net 3.5 升级到 4.5,以便使用脚本捆绑和 javascript 的缩小。现在我已经运行了所有脚本并且脚本都出现在我定义的包中,但它们没有“捆绑”在一个脚本中,也没有被缩小。

这是我所拥有的...

default.aspx 包含以下内容:

<asp:ScriptManager
ID="scriptmanager"
LoadScriptsBeforeUI="false"
runat="server"
ScriptMode="Release"
EnableScriptLocalization="false"
>
<Scripts>
<%--Framework Scripts--%>
<asp:ScriptReference Path="~/bundles/MyBundle" ScriptMode="Release"/>
<%--Site Scripts--%>
</Scripts>
</asp:ScriptManager>

Global.asax 中的 Application_Start:
BundleTable.EnableOptimizations = true;
BundleConfig.RegisterBundles(BundleTable.Bundles);

捆绑配置.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Optimization;

namespace MyNameSpace
{
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254726
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/MyBundle").Include(
"~/Scripts/WebForms/WebForms.js",
"~/Scripts/WebForms/MSAjax/MicrosoftAjax.js",
"~/Scripts/WebForms/MSAjax/MicrosoftAjaxWebForms.js",
"~/Scripts/WebForms/TreeView.js",
"~/Scripts/WebForms/Focus.js",
"~/Scripts/WebForms/MenuStandards.js"));

}
}
}

我什至关闭了 web.config 中的调试,即使我尝试在脚本管理器和脚本引用中强制 Release模式。
<compilation debug="false" batch="true" targetFramework="4.5">

输出还是几个引用:
<script src="/MyProj/WebResource.axd?d=pynGkmcFUV13He1Qd6_TZA6EiyQ1YRW47qIzscWLzWU7jP_7DjoC2XbU7kCBkgYcJdoeAwqaVpUMnbWRsvhdMw2&amp;t=634896541540000000" type="text/javascript"></script>
<script src="/MyProj/ScriptResource.axd?d=zvkqIRNUspAvS1yKeFhMb4kS_IY-Q_9Yn_KOfmzKLnliETz8uip5T2BUr1JOPE4XV1bmnifY3Eg8vrX8bPLYT71P0Kf8DwEcoRw5fj2tqHdQSorRXVpasfsMXeJLHbT_alkHjf2wIrgxLzxYvocKIA2&amp;t=12e197aa" type="text/javascript"></script>
<script src="/MyProj/ScriptResource.axd?d=NJmAwtEo3Ipnlaxl6CMhvpbyEkpQU7AWZ3ZOrSRn7cdqTBUwP_3lu0l46EnEFBAkBOoC5I7IpMnx8u7VKe4fESCWGvycDq7dTXHsUSTg-j9u4S2Poz38UkmBa7Ta1cXyZ9DcFfKo7RpgjmNNoFjlZgbsHJEPN_AnazProCOQuws1&amp;t=6119e399" type="text/javascript"></script>
<script src="/MyProj/ScriptResource.axd?d=dwY9oWetJoJoVpgL6Zq8OPgCkw9mWNaQmhnwlbrOgCXqxXAsNin9JxaUjtv38gzHz78sozRMjuXYeM_GE0v4htSt6vWwOO4-gOCLfSt6rVOvxbpcCXCLN9jI7fWPkTL2Eq7a9kcN8S4MasueIxDV0rhf-htD32XuwA259deRSNs1&amp;t=6119e399" type="text/javascript"></script>
<script src="/MyProj/WebResource.axd?d=JoBkLzP19aTuxbWOhHobYmKZKUo0k_GoCFbuT9i-BqZJQhy_7Dl0oCPSUy3hiGltbFyiUTxWBZD-5YWblJpSZg2&amp;t=634896541540000000" type="text/javascript"></script>

我错过了什么?
如何让包中的所有脚本只输出一个引用并缩小其中的代码?

谢谢,J

最佳答案

您的 <asp:ScriptReference /> 似乎没有正在输出包。我使用 MVC 从 Razor 模板中引用包,如下所示:

@Scripts.Render("~/bundles/lib")

这会导致这样的输出(注意 src 属性包括原始包名称):
<script src="/bundles/lib?v=gGKSj7TFmjDTZAjdEzBrqOOu9aGB6i4Tq0mHfaLUk_c1"></script>

如果您不使用 Razor ,您可以尝试直接引用 System.Web.Optimization.Scripts类调用 Render()方法而不是使用 <asp:ScriptReference /> .

关于缩小,您需要像这样向您的包添加缩小转换:
var myBundle = new ScriptBundle("~/bundles/MyBundle").Include(
"~/Scripts/WebForms/WebForms.js",
"~/Scripts/WebForms/MSAjax/MicrosoftAjax.js",
"~/Scripts/WebForms/MSAjax/MicrosoftAjaxWebForms.js",
"~/Scripts/WebForms/TreeView.js",
"~/Scripts/WebForms/Focus.js",
"~/Scripts/WebForms/MenuStandards.js")
myBundle.Transforms.Add(new JsMinify());
bundles.Add(myBundle);

关于asp.net 4.5 脚本 bundler 不捆绑不缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16295926/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com