#dotnetnuke #doctype
#dotnetnuke #doctype
Вопрос:
Мы никогда раньше не сталкивались с этим с DNN, но сайты, которые были запущены в течение длительного времени, переходят в режим Quirks, потому что тип документа резервной обложки изменился на HTML4 (устаревший).
Единственное, что я делаю по-другому сейчас, это разрабатываю непосредственно в файле ASCX, а не разбираю обложку, как я делал в прошлом. Я не собираюсь приближаться к настройкам хоста во время этого процесса.
Пожалуйста, есть идеи? Спасибо
Ответ №1:
Если в оболочке не указан DocType, DNN проверяет настройки хоста для него. Итак, вы можете либо изменить его в настройках хоста (предпочтительно), либо указать его в обложке. Использование ASCX для определения обложки, а не HTML, не должно иметь никакого значения.
Чтобы указать doctype для обложки, у вас есть два варианта: 1.) Создайте файл с именем «Ваше название обложки».doctype.xml . например myskin.doctype.xml
В файл поместите следующее:
<SkinDocType>
<![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]>
</SkinDocType>
2.) Добавьте следующее в верхней части вашего скина
<script runat="server">
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim skinDocType as Control = Me.Page.FindControl("skinDocType")
If Not skinDocType is Nothing
CType(skinDocType, System.Web.UI.WebControls.Literal).Text="<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">"
End If
End Sub
</script>
Комментарии:
1. Спасибо, Дэйв. Как ни странно, у нас есть еще 3 сайта для точно такого же клиента, и этого не происходит ни с одним из других сайтов. Что отличается на других сайтах, так это то, что для их XML-типов документов установлено значение strict, в отличие от Transitional. Есть мысли по этому поводу?
2. За эти годы я создал более 100 сайтов DNN и не видел ничего подобного тому, что вы описываете. Итак, я не думаю, что это DNN, но не могу предположить, что это может быть. Если вы укажете DocType, а он не используется, это значительно сужает проблему. Если doctype отображается должным образом (см. исходный код на странице), а IE все еще переключается в режим quirks, это совсем другая, но более узкая проблема.