Где хранить CSS и jQuery, используемые в HTML-модуле DotNetNuke? - PullRequest
3 голосов
/ 27 февраля 2012

Мы добавляем некоторые часто задаваемые вопросы на несколько порталов на нашем сайте DotNetNuke, используя модуль редактора HTML.Макет и стили будут одинаковыми на каждом портале, поэтому я пытаюсь определить лучшее место для хранения пользовательских стилей CSS и jQuery в DotNetNuke (версия 5.6), чтобы мы могли ссылаться на них в модуле редактора HTML для всех порталов.

Хотя добавление стилей CSS в файл Portals / _default / default.css работает, я понимаю, что я не хочу менять этот файл в случае, если мы обновляем CMS на более новую версию, которая будетперезаписать CSS ... верно?

Если это правильный подход, есть ли подобный файл для глобальных файлов .js, где мы могли бы хранить jQuery?Я также не решаюсь включить ссылку на скрипт на страницу Default.aspx по той же причине.

Спасибо

РЕДАКТИРОВАТЬ: Я добавил стили к вышеупомянутым ссылкамdefault.css, и добавил тег script на страницу Default.aspx в файл .js, который я поместил в Resources / Shared / scripts /.Кажется, это работает хорошо ... если кто-то хочет добавить свои два цента, я хотел бы услышать, есть ли лучший подход.Кажется, что добавление документации для тех, кто мог бы в будущем обращаться к этому сайту, может устареть , если это не обычная практика.тег style и script на странице Default.aspx, который ссылается на файл CSS и JS, оба хранятся в соответствующих каталогах Resources / Shared / (вместо редактирования файла default.css).

Ответы [ 2 ]

4 голосов
/ 27 февраля 2012

На самом деле в DNN нет места для глобального пользовательского контента, охватывающего порталы, если только он не находится в модуле или другом расширении. В этом случае кажется, что ваши порталы могут иметь одинаковую обложку, поэтому было бы неплохо разместить собственные стили и сценарии (при условии, что вы владеете / управляете обложкой; если она сторонняя, и вы можете обновить ее, возможно, лучше всего быть закрытыми, как основной код).

Итак, либо добавьте CSS и скрипт в скин, либо создайте собственный модуль, который добавляет стили / скрипты, которые вы можете включить на каждой странице (используя параметр модуля Показать на всех страницах).

Если вы используете DNN 6.1 или более поздней версии, вы можете подключиться к представленной клиентской структуре управления ресурсами , чтобы управлять ссылками на 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.

1 голос
/ 27 февраля 2012

Если вы решите установить будущие версии DNN, я бы порекомендовал не трогать файлы по умолчанию. Я хотел бы создать новый файл CSS, а также новый файл JS и поместить туда ваши уникальные стили и код. В рамках вашего глобального контроля совершайте link и script звонки каждому.

...