【问题标题】:Where to store CSS and jQuery used in DotNetNuke HTML module?在哪里存储 DotNetNuke HTML 模块中使用的 CSS 和 jQuery?
【发布时间】:2012-02-27 18:03:48
【问题描述】:

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

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

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

谢谢

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

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

【问题讨论】:

  • @NickBeranek - 真的吗?您将什么用于 .NET CMS?我只使用了几个星期,但它似乎并没有那么糟糕。我对 mojoPortal 有很多抱怨,尽管我确实更喜欢 masterPages 而不是 DNN 皮肤/主题。
  • 您没有太多选择。也许这取决于情况。我们有 3 名 .NET 开发人员试图将其合并,但它非常麻烦和繁琐,我们最终将其转储到 .NET MVC 并构建我们自己的 CMS。如果您没有与 .NET 结婚,您可以尝试 Drupal 或 joomla。如果你想继续使用 .NET,那么你可以试试umbraco

标签: jquery css dotnetnuke


【解决方案1】:

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);
}

脚本可以通过简单的&lt;script&gt; 标记或ClientScriptManager.RegisterStartupScript 之类的标记来引用。

【讨论】:

  • 谢谢。他们都使用不同的皮肤。我添加的 CSS 实际上只是为了这个折叠/展开 jQuery 列表,以便在点击时切换“加号”和“减号”图像。看起来编辑我的 Default.aspx 页面是最快且涉及最少的解决方案,考虑到没有针对所有门户的全局自定义内容。更不用说我还需要引用 jQuery。
【解决方案2】:

如果您决定安装 DNN 的未来版本,那么我建议您不要接触默认文件。我会创建一个新的 CSS 文件和一个新的 JS 文件,并将你独特的样式和代码放在那里。在您的全局控制范围内,分别调用 linkscript

【讨论】:

  • 在这种情况下,全局控件是 HTML 编辑器之一(我认为是 Telerik)。如果我在该控件中编辑文件,我会不会陷入同样的​​困境?我认为我们的内容编辑器只是使用 WYSIWYG 编辑器,因此要求他们包含样式和脚本标签可能行不通……除非我们进行一些培训。
  • 据我所知,您的每个网站都包含在一个“主题”文件夹中,对吗?除了全局控件,也许您可​​以在您网站的主题目录中添加这些调用?
  • 看起来每个站点目录都在 Portals 目录中。问题是我们有 60 个门户,所以我必须为每个门户添加(和更新)它......哎呀。必须有主机范围内的东西。
猜你喜欢
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
相关资源
最近更新 更多