rid*_*nsb 13 asp.net-mvc-4 asp.net-optimization
对于每个控制器都有一个文件夹(具有相同名称的控制器),并为每个操作一个脚本文件.
对于每个文件,都按照模式创建一个包:"〜/ Scripts/Controllers/{controller-name}/{filename-without-extension}"
bundles.IncludePerFile(new DirectoryInfo(server.MapPath("~/Scripts/Controllers")), "~/Scripts/Controllers/{0}/{1}",
(dir,file) => string.Format("~/Scripts/Controllers/{0}/{1}", dir, Path.GetFileNameWithoutExtension(file)), "*.js");
Run Code Online (Sandbox Code Playgroud)
IncludePerFile
是我为执行此任务而创建的扩展方法
然后一个捆绑:~/Scripts/Controllers/processos/pasta
应该存在!
并确认这一点:
到目前为止如此正确!捆绑存在!
当我运行该应用程序时,会发生以下错误:
如果我改变了这个:
@Scripts.Render("~/Scripts/Controllers/processos/pasta")
Run Code Online (Sandbox Code Playgroud)
对此:
@Scripts.Render("~/Scripts/Controllers/processos/pasta.js")
Run Code Online (Sandbox Code Playgroud)
没有生成错误.但是文件没有缩小,因为实际上有一个捆绑.(我已经放入了发布模式并发布了应用程序!)
Index was outside the bounds of the array.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.IndexOutOfRangeException: Index was outside the bounds of the array.
Source Error:
Line 3: @section js {
Line 4: @*@Scripts.Render("~/Scripts/Controllers/processos/Pasta.js", "~/Scripts/Controllers/processos/display.js")*@
Line 5: @Scripts.Render("~/Scripts/Controllers/processos/pasta")
Line 6: @Scripts.Render("~/Scripts/Controllers/processos/display.js")
Line 7:
Source File: w:\Clients\creditoimobiliariobb\sistema\src\CreditoImobiliarioBB\CreditoImobiliarioBB.Web\Views\processos\display.cshtml Line: 5
Stack Trace:
[IndexOutOfRangeException: Index was outside the bounds of the array.]
System.String.get_Chars(Int32 index) +0
Microsoft.Ajax.Utilities.CssParser.Append(Object obj, TokenType tokenType) +402
Microsoft.Ajax.Utilities.CssParser.AppendCurrent() +74
Microsoft.Ajax.Utilities.CssParser.SkipToClose() +744
Microsoft.Ajax.Utilities.CssParser.SkipToEndOfStatement() +232
Microsoft.Ajax.Utilities.CssParser.ParseRule() +574
Microsoft.Ajax.Utilities.CssParser.ParseStylesheet() +1235
Microsoft.Ajax.Utilities.CssParser.Parse(String source) +897
Microsoft.Ajax.Utilities.Minifier.MinifyStyleSheet(String source, CssSettings settings) +419
System.Web.Optimization.CssMinify.Process(BundleContext context, BundleResponse response) +302
System.Web.Optimization.Bundle.ApplyTransforms(BundleContext context, String bundleContent, IEnumerable`1 bundleFiles) +207
System.Web.Optimization.Bundle.GenerateBundleResponse(BundleContext context) +355
System.Web.Optimization.Bundle.GetBundleResponse(BundleContext context) +104
System.Web.Optimization.BundleResolver.GetBundleContents(String virtualPath) +254
System.Web.Optimization.AssetManager.EliminateDuplicatesAndResolveUrls(IEnumerable`1 refs) +435
System.Web.Optimization.AssetManager.DeterminePathsToRender(IEnumerable`1 assets) +1029
System.Web.Optimization.AssetManager.RenderExplicit(String tagFormat, String[] paths) +75
System.Web.Optimization.Scripts.RenderFormat(String tagFormat, String[] paths) +292
System.Web.Optimization.Scripts.Render(String[] paths) +51
Run Code Online (Sandbox Code Playgroud)
FSo*_*ou1 32
我在这个问题上遇到了同样的错误:StyleBundle Index超出了数组的范围
答案很简单:你必须更新你的Microsoft Web Optimization
&WebGrease
包(此时1.1.2和1.6.0版本)
我会验证你的所有元素
IncludePerFile(new DirectoryInfo(server.MapPath("~/Scripts/Controllers")), "~/Scripts/Controllers/{0}/{1}",
(dir,file) => string.Format("~/Scripts/Controllers/{0}/{1}", dir, Path.GetFileNameWithoutExtension(file)), "*.js")
Run Code Online (Sandbox Code Playgroud)
正在将创建的捆绑包完全放入您认为他们所投入的内容中.
在捆绑包中包含错误类型的文件时,我在运行时收到此错误.即
@Styles.Render("~/bundles/myStyleBundle");
Run Code Online (Sandbox Code Playgroud)
实际上包含一个JavaScript文件.
我遇到了同样的问题,当我尝试不同的检查时,我发现我的css文件中有一个选择器会导致问题:
.glyphicons-icon _: - o- prefocus,.glyphicons-icon {background-image:url(../ images/glyphicons.png); }
似乎Microsoft.Ajax.Utilities.CssParser与_: css选择器有问题.我删除了线路,它正在工作.
归档时间: |
|
查看次数: |
17182 次 |
最近记录: |