无法生成';VersionQueryString';在脚本中.使用bundle时渲染

本文关键字:bundle 使用 VersionQueryString 脚本 | 更新日期: 2023-09-27 18:24:54

这是我的设置:

public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/" + Links.Scripts.jquery_2_1_1_min_js,
                    "~/" + Links.Scripts.jquery_migrate_1_2_1_min_js,
                    "~/" + Links.Scripts.calendar.jquery_ui_datepicker_cc_all_min_js
                    ));
    }
    protected void Application_Start()
    {
        RegisterBundles(BundleTable.Bundles);
        BundleTable.EnableOptimizations = true;
    }

在布局视图中使用此代码:

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

在VS中没有问题但是当发布我的项目并在IIS8.0中部署它时,无法生成VersionQueryString,这是HTML输出:

<script src="/Test/bundles/jquery?v="></script>

但这是个问题。Html输出必须是这样的:

<script src="/Test/bundles/jquery?v=D8YBlpJkSh-c2SxXkODfl3ftU01p3BTOtqGF3Uuuq9E1"></script>

什么原因会导致无法生成VersionQueryString?

无法生成';VersionQueryString';在脚本中.使用bundle时渲染

更改此行

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                "~/" + Links.Scripts.jquery_2_1_1_min_js,
                "~/" + Links.Scripts.jquery_migrate_1_2_1_min_js,
                "~/" + Links.Scripts.calendar.jquery_ui_datepicker_cc_all_min_js
                ));
}

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                VirtualPathUtility.ToAppRelative(Links.Scripts.jquery_2_1_1_min_js),
                VirtualPathUtility.ToAppRelative(Links.Scripts.jquery_migrate_1_2_1_min_js),
                VirtualPathUtility.ToAppRelative(Links.Scripts.calendar.jquery_ui_datepicker_cc_all_min_js)
                ));
}

VirtualPathUtility.ToAppRelative:使用System.Web.HttpRuntime.AppDomainAppVirtualPath属性中的应用程序虚拟路径将虚拟路径转换为应用程序相对路径。