asp.net-mvc – ScriptBundle(“〜/ Scripts / vendor”)

我写了一个新的应用程序,它将使用现有的主题,这将由设计师更改.

所以我决定,不要将脚本放在脚本和内容(Css,图像)中的其他内容,而只是将主题保存在Theme文件夹中(带子目录 – js,css,img)

所以我尝试更改脚本捆绑以指向我在Theme / js而不是Scripts中的脚本

我改成了

bundles.Add(
          new ScriptBundle("~/Scripts/vendor")
            .Include("~/Theme/js/jquery-{version}.js")
            .Include("~/Theme/js/knockout-{version}.debug.js")
            .Include("~/Theme/js/sammy-{version}.js")
            .Include("~/Theme/js/toastr.js")
            .Include("~/Theme/js/Q.js")
            .Include("~/Theme/js/breeze.debug.js")
            .Include("~/Theme/js/bootstrap.js")
            .Include("~/Theme/js/moment.js")
          );

我不明白的是行

new ScriptBundle("~/Scripts/vendor")

如果我把它留在上面(即使没有脚本/供应商文件夹,代码工作正常,但我改为

new ScriptBundle("~/Theme/js/vendor")

我在firebug中遇到网络错误

"NetworkError: 404 Not Found - http://localhost:51154/scripts/vendor"

其余脚本未加载.

这行是做什么的?

谢谢

解决方法

bundles.Add(ScriptBundle)方法一个脚本包添加到bundle表中,您可以通过提供给ScriptBundle(string)构造函数的字符串来引用它.

因此,使用新的ScriptBundle(“〜/ Foo”)创建并添加到包中的包稍后可以使用@ Scripts.Render(“〜/ Foo”)呈现.

您可能忘记的是将_layout.cshtml中的@ Scripts.Render(“〜/ Scripts / vendor”)更改为@ Scripts.Render(“〜/ Theme / js / vendor”),这将是您看到的错误.

传递给构造函数的参数仅为documented作为“包的虚拟路径”,因此您必须弄清楚这意味着什么以及您能够和不能放在那里的内容.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....