BundleConfig.cs不再包括{version}

时间:2016-07-13 01:08:25

标签: jquery asp.net asp.net-mvc asp.net-mvc-5

当前项目:

  • ASP.NET 4.5.1
  • MVC 5

我最近不得不从头开始重建我的整个项目(从轨道上钻取,创建新项目,并将所有先前编辑/创建的文件手动移植到新项目中),但这个问题甚至出现在旧项目中。所以我很确定这不是我直接做的事情。

关键是,我目前正处于调试模式。是的,我知道,我需要最终进入发布模式,但即使直接通过Visual Studio工作,我也遇到了问题。

我的jquery-3.0.0.min.jsjquery-3.0.0.js文件正好在他们需要的位置,_reference.js也列出了这些文件,但BundleConfig.cs似乎无法找到正确的文件要包含的文件。我强制它包含的唯一方法是将{version}替换为实际版本号。随着更新,这可能会很快变得难以维持。

建议?

编辑1:

我的BundleConfig.cs相关部分:

bundles.Add(new ScriptBundle("~/bundles/script.jquery").Include(
  "~/Scripts/jquery-{version}.min.js"));

我的_Layout.cshtml

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

不,名字中的圆点没有区别;我最初是在默认情况下使用它,但必须更改它以跟踪我正在添加的内容。

2 个答案:

答案 0 :(得分:2)

引用Post by Rick Anderson

中的部分
  

注意:除非EnableOptimizations为true或者调试属性为   编译Web.config文件中的元素设置为false,文件   不会被捆绑或缩小。另外,.min版本   不会使用文件,将选择完整的调试版本。   EnableOptimizations会覆盖编译中的debug属性   Web.config文件中的元素

我对此进行了测试,只要您将上面的点更改为script.jquery中的破折号到script-jquery(不适用于点分隔符),这就行了。

请记住为调试模式启用优化。

BundleTable.EnableOptimizations = true;

所以以下内容应该有效:

BundleConfig.cs

bundles.Add(new ScriptBundle("~/bundles/script-jquery").Include(
"~/Scripts/jquery-{version}.min.js"));

//You will need the line below so already minified files can be picked up by the bundler in debug mode.
BundleTable.EnableOptimizations = true;

_Layout.cshtml

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

答案 1 :(得分:0)

添加

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

在layout.cshtml文件的head部分。 还要添加

 @RenderSection("scripts", required: false)

这只是一个建议。我不确定它是否会起作用。