jquery - 在哪里存储 DotNetNuke HTML 模块中使用的 CSS 和 jQuery?

标签 jquery css dotnetnuke

我们正在使用 HTML 编辑器模块向 DotNetNuke 站点中的多个门户添加一些常见问题解答。每个门户的布局和样式都相同,因此我试图确定在 DotNetNuke(5.6 版)中存储自定义 CSS 样式和 jQuery 的最佳位置,以便我们可以在所有门户的 HTML 编辑器模块中引用它们。

虽然将 CSS 样式添加到 Portals/_default/default.css 文件是可行的,但据我了解,如果我们将 CMS 更新到更新的版本会覆盖 CSS,我不想更改此文件... 正确的?

如果这是正确的方法,是否有一个类似的文件用于我们可以存储 jQuery 的全局 .js 文件?出于同样的原因,我也对在 Default.aspx 页面中包含脚本引用犹豫不决。

谢谢

编辑: 我将样式添加到上面引用的 default.css 页面,并将脚本标记添加到 Default.aspx 页面到我放在 Resources/Shared/scripts/中的 .js 文件.它似乎运作良好......如果有人想增加他们的两分钱,我想听听是否有更好的方法。似乎为将来可能接触此站点的任何其他人添加文档可能会过时除非这是一种常见做法。

EDIT2: 我最后只是在引用 CSS 和 JS 文件的 Default.aspx 页面中添加了一个样式和脚本标签,它们都存储在相应的 Resources/Shared/目录中(而不是编辑 default.css 文件)。

最佳答案

在 DNN 中,跨门户的全局自定义内容并没有真正的位置,除非它在模块或其他扩展中。在这种情况下,听起来您的门户网站可能具有相同的皮肤,因此这是放置自定义样式和脚本的好地方(假设您拥有/控制皮肤;如果它是第 3 方并且您可能会更新它,它可能是最好是禁区,比如核心代码)。

因此,要么将 CSS 和脚本添加到皮肤,要么创建一个自定义模块来添加样式/脚本,您可以将其包含在每个页面上(使用“在所有页面上显示”模块设置)。

如果您使用的是 DNN 6.1 或更高版本,您可以插入 Client Resource Management framework引入,管理对 CSS 和 JS 的引用。首先,将此引用添加到控件(皮肤、模块控件等):

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>

然后像这样使用它:

<dnn:DnnJsInclude runat="server" FilePath="DNNMega/jquery.dnnmega.debug.js" PathNameAlias="SkinPath" />
<dnn:DnnCssInclude runat="server" FilePath="DNNMega/dnnmega.css" PathNameAlias="SkinPath" />

否则,添加样式表的最佳选择是以下代码:

protected override void OnInit(EventArgs e) {
    base.OnInit(e);
    this.AddStyleSheet("//fonts.googleapis.com/css?family=Rokkitt:400,700");
}

private void AddStyleSheet(string path)
{
    ((CDefault)this.Page).AddStyleSheet(DotNetNuke.Common.Globals.CreateValidID(path), path);
}

脚本可以通过一个简单的 <script> 引用标签,或类似 ClientScriptManager.RegisterStartupScript 的东西.

关于jquery - 在哪里存储 DotNetNuke HTML 模块中使用的 CSS 和 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9469872/

相关文章:

dotnetnuke - 模块安装时可以在 DNN web.config 中添加一行吗?

jquery - 如何关闭 jQuery Simplemodal?

javascript - 根据总数和奇偶数分割JSON对象

javascript - 从动态生成的下拉列表中获取值

javascript - 将鼠标悬停在另一个元素上时删除 <div> 元素

html - CSS:如何设置表格背景的样式,包括 <caption> 元素

dotnetnuke - 是否有可能在 DNN 的路线映射器中添加多条路线

JavaScript 与术语混淆?

jquery - 在使用 flexbox 时,如何让位于 flex 列中的 3 个按钮在悬停时向左滑出进入 View ?

c# - 使用 UrlUtils 类的 PopUpUrl 方法在 Dotnetnuke 6 中弹出自定义模块