【发布时间】:2011-10-31 20:35:25
【问题描述】:
谁能告诉我如何在 Orchard CMS 中使用 js 文件?我将它添加到 Layout.cshtml 页面
Script.include("jquery.js").
【问题讨论】:
标签: javascript asp.net asp.net-mvc asp.net-mvc-3 orchardcms
谁能告诉我如何在 Orchard CMS 中使用 js 文件?我将它添加到 Layout.cshtml 页面
Script.include("jquery.js").
【问题讨论】:
标签: javascript asp.net asp.net-mvc asp.net-mvc-3 orchardcms
如果您安装并启用了 Orchard.jQuery 模块,则在视图顶部使用:
Script.Require("jQuery")
查看 Orchard.jQuery 项目中的 ResourceManifest 类(应该在您的 Orchard 解决方案文件中),在那里您可以看到使用此语法可以包含的所有不同 jQuery 模块(例如 jQueryUI_Core、@987654323 @等)
例如
manifest.DefineScript("jQueryUI").SetUrl("jquery-ui.min.js", "jquery-ui.js").SetVersion("1.9.2").SetDependencies("jQuery")
.SetCdn("//ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.min.js", "//ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.js", true);
【讨论】:
要想有一个很好的例子,请寻找模块 ContentPicker。这带有默认的 Orchard 源代码。它展示了如何使用 Script.Require("MyScript")。 JQuery 模块本身就是一个很好的例子。该模块还带有默认源代码。
注意:我指的是 Orchard 1.7 及更高版本
【讨论】:
你可以做到这一点。
第一种方法就像 mdm 描述的那样:
IResourceManifestProvider 接口实现(查看 Orchard 源代码 - 它已在许多模块中实现),实现 BuildManifests(ResourceManifestBuilder builder) 方法并为给定的 .js 文件创建命名资源@{ Script.Require("[your resource name]"); } 以包含该脚本。如果您有许多脚本文件,并且它们之间可能存在依赖关系,这是首选解决方案。它允许您为每个脚本文件指定依赖项,并让 Orchard 处理其余部分(因此当您引用给定资源时,所有依赖项也将自动以正确的顺序引用)。
第二种更简单的方法是直接引用 .cshtml 文件中的 .js 脚本文件,而不创建命名资源。如果您想快速添加对单个脚本的引用,这很有用。像这样(示例取自 Orchard.Web\Core\Shapes\Views\Document.cshtml):
@{ Script.Include("html5.js").AtLocation(ResourceLocation.Head); }
【讨论】:
这有点作弊,但您可以将其添加到布局或文档文件中。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js" type="text/javascript"></script>
【讨论】:
Script.Include(""); 来完成,因为如果通过不同的视图引用了多个,Orchard 只会加载一个。