无法生成';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?
更改此行
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属性中的应用程序虚拟路径将虚拟路径转换为应用程序相对路径。