Scripts.Render没有将v =参数添加到我的脚本中

时间:2013-12-05 15:25:21

标签: asp.net asp.net-mvc-4 bundle

我有一种奇怪的行为。我有两个不同的ScriptBundles,如下:

var b1 = new ScriptBundle("~/bundle/js").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*",
"~/Scripts/bootstrap.js"
//plus all other 3rd party scripts
);
bundles.Add(b1);
var bLicensingDC = new ScriptBundle("~/bundle/licensing-dc/js").Include(
"~/App/licensing-dc-built.js");
bundles.Add(bLicensingDC);

使用@Scripts.Render("...")添加两个捆绑包,但只有~/bundle/js个捆绑包使用缓存占用者v=参数进行渲染。

<script src="/bundle/js?v=-5GM9HLcujnDGm6SNVq0Es63_cXK2viQ4_nYEpm02Ls1"></script>
<script src="/bundle/licensing-dc/js"></script>

为什么呢? javascript文件的位置与此有关吗?

1 个答案:

答案 0 :(得分:0)

误报,这是用户错误。我正在做以下事情:

@{
    string jsPath = Url.Content("~/bundle/licensing-" + ViewBag.JurisdictionPath + "/js");
}

@section scripts {
    @Scripts.Render(jsPath)
}

因为jsPath是基于其他一些因素动态构建的。正在删除Url.Content("...");解决了我的问题。