为了隔离任何问题以便重现该问题,我在 VS 2017 中使用 ASP.NET MVC 模板 (.NET Framework 4.6.1) 开始了一个全新的项目。
我将最新的ckeditor5添加到/Scripts/ckeditor5/ckeditor.js
在 BundleConfig.cs 中,我添加了以下内容:
bundles.Add(new ScriptBundle("~/bundles/ckeditor").Include(
"~/Scripts/ckeditor5/ckeditor.js"));
在 _layout.cshtml 中,我有这个:
@Scripts.Render("~/bundles/ckeditor")
当我运行应用程序时,它给出“System.NullReferenceException”错误。看来微软的Ajax解析不喜欢ckeditor5??
在 Microsoft.Ajax.Utilities.JSParser.ParseObjectLiteralProperty(布尔值 isBindingPattern) 在 Microsoft.Ajax.Utilities.JSParser.ParseObjectLiteral(布尔值 isBindingPattern) 在 Microsoft.Ajax.Utilities.JSParser.ParseLeftHandSideExpression(布尔值 是减) 在 Microsoft.Ajax.Utilities.JSParser.ParseUnaryExpression(Boolean& isLeftHandSideExpr,布尔值 isMinus) 在 Microsoft.Ajax.Utilities.JSParser.ParseVarDecl(JSToken inToken)
在 Microsoft.Ajax.Utilities.JSParser.ParseVariableStatement() 在 Microsoft.Ajax.Utilities.JSParser.ParseFunctionBody(块体)
在 Microsoft.Ajax.Utilities.JSParser.ParseFunction(FunctionType 函数类型,上下文 fncCtx) 在 Microsoft.Ajax.Utilities.JSParser.ParseLeftHandSideExpression(布尔值 是减) 在 Microsoft.Ajax.Utilities.JSParser.ParseUnaryExpression(Boolean& isLeftHandSideExpr,布尔值 isMinus) 在 Microsoft.Ajax.Utilities.JSParser.ParseArrayLiteral(布尔值 isBindingPattern) 在
如果我忘记了 Bundle 并且我在 _Layout.cshtml 上硬编码了这样的路径,它会起作用:
<script src="~/Scripts/ckeditor5/ckeditor.js"></script>
知道如何使捆绑包适用于 ckeditor5?
这个问题很可能与 ScriptBundle 尝试缩小已经缩小的文件有关。在 Ckeditor5 的情况下,这会中断。
修复方法是将 .min 添加到文件扩展名中的 .js 之前。
这解决了我的问题。
您不必使用 ScriptBundle 名称中的扩展文件。
不是这样的:
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js"));
这样做:
在 BundleConfig.cs 上:
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap"));
在文件.cshtml上:
@Scripts.Render("~/bundles/bootstrap")
我在此页面上找到了这个:https://www.it-swarm-es.com/es/asp.net-mvc/mvc-bundling-no-se-pudo-cargar-el-recurso/1040501977/
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include("~/Scripts/bootstrap"));
使用此顶栏后,像引导程序一样从主页消失,无法正常工作
不知道这是否仍然有效,但我在这个问题上遇到了困难, 从 Bootstrap 4 tp 5 更新后。
那么什么对我有用:
从 new ScriptBundle() 更改为 new Bundle()
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(...);
至
bundles.Add(new Bundle("~/bundles/bootstrap").Include(...);