2011-11-08 22 views
0

我們從未使用過DNN,但是由於FallBack皮膚文檔類型已更改爲HTML4(Legacy),已經運行了很長時間的網站將自己投入怪癖模式。DotNetNuke將自己引入怪癖模式而不更改設置

我現在做的唯一不同的是直接開發到ASCX文件,而不是像我過去那樣解析皮膚。在此過程中,我不會在主機設置附近進行任何操作。

有什麼想法嗎? 謝謝

回答

5

如果皮膚沒有指定DocType,則DNN會查看它的主機設置。因此,您可以在主機設置中更改它(首選)或在皮膚中指定它。使用ASCX來定義皮膚而不是HTML應該沒有什麼區別。

要指定皮膚的文檔類型,您有兩種選擇: 1.)創建一個名爲「Your Skin Name」.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> 
+0

由於戴夫的頂部。奇怪的是,我們有3個其他網站爲完全相同的客戶端,這不是發生在任何其他網站。但其他網站的不同之處在於,它們的XML DocTypes被設置爲嚴格而不是Transitional。對此有何想法? – SixfootJames

+0

多年來,我建立了超過100個DNN網站,並且沒有看到任何類似於您所描述的內容。所以,我不認爲這是DNN,但不能真正猜到它可能是什麼。如果您指定了DocType並且沒有使用,那麼這會縮小問題的範圍。如果文檔類型正確渲染(在頁面上執行查看源代碼),並且IE仍在切換到怪癖模式,那麼這是一個非常不同但更窄的問題。 – EfficionDave