雖然接觸DNN有一段時間了,不過在皮膚的應(yīng)用和制作上還是存在一定的誤區(qū)的,所以把經(jīng)驗(yàn)以問答形式寫出來,希望能對后來的人有所幫助吧!
如有任何問題,歡迎到www.發(fā)帖討論!
應(yīng)用部分:
問題1:DNN皮膚是什么?
回答:DNN皮膚,簡單來說,就是網(wǎng)站的外觀,通過皮膚技術(shù),你可以輕而易舉地為你的網(wǎng)站更換外觀。皮膚的引入,讓你可以無需具備美工知識,也可以建立一個漂亮的站點(diǎn),因?yàn)槟憧梢缘揭粋€皮膚網(wǎng)站下載你喜歡的皮膚,然后加載到你的站點(diǎn),如同買衣服來穿那么方便。
問題2:一個網(wǎng)站只能使用一個DNN皮膚嗎?
回答:一個網(wǎng)站可以使用多個,甚至多套皮膚,每個網(wǎng)頁都可以對應(yīng)一個皮膚,這個皮膚可以是來自主機(jī)或站點(diǎn)的多套皮膚。
問題3:如何為每一個網(wǎng)頁指定一個皮膚呢?
回答:以管理員身份登錄,然后打開想要指定的皮膚樣式的頁面,點(diǎn)“編輯”,進(jìn)入編輯狀態(tài),點(diǎn)“高級設(shè)定”,在“頁面皮膚”中選擇你需要的皮膚,然后保存,就完成設(shè)置了。
問題4:DNN容器是什么?
回答:簡單來說,DNN容器就是DNN模塊的皮膚。
問題5:網(wǎng)站的模塊都只能使用同一個DNN容器嗎?
回答:網(wǎng)站的模塊可以對應(yīng)一個容器,這個容器可以是來自主機(jī)或站點(diǎn)的多套容器。
問題6:如何為每一個模塊指定一個容器呢?
回答:以管理員身份登錄,然后點(diǎn)擊相應(yīng)模塊的“設(shè)置”,進(jìn)入設(shè)置狀態(tài),點(diǎn)“頁面設(shè)置”,在“模塊窗口”中選擇你需要的容器,然后保存,就完成設(shè)置了。
開發(fā)部分:
問題1:皮膚是用HTML開發(fā)還是用ASCX開發(fā)?
回答:皮膚既可以HTML開發(fā)也用ASCX開發(fā)。根據(jù)我的觀察,DNN生成皮膚的機(jī)制是這樣的,先檢查皮膚包里有沒有HTML,如果有,對它執(zhí)行轉(zhuǎn)換,這個轉(zhuǎn)換是把HTML和skin.xml組合,生成ASCX,如果沒有,它就提取ASCX,所以最終結(jié)果是一樣的。DNN實(shí)際使用的,都是ASCX。
問題2:如果采用HTML開發(fā),皮膚包中應(yīng)包含哪些文件,起什么作用?
回答:采用HTML開發(fā),皮膚包中應(yīng)包含至少一個HTML文件和skin.xml,skin.css,一個與HTML同名的圖片文件,如果使用到圖片資源,還需要包括對應(yīng)的圖片。
HTML文件描述各個功能標(biāo)簽的位置,例如:版權(quán)聲明放在什么位置; skin.xml 文件聲明皮膚包需要使用哪些功能標(biāo)簽;skin.css 是層疊樣式表文件,定義各種樣式;HTML同名的圖片用于皮膚的預(yù)覽。
問題3:如果采用ASCX開發(fā),皮膚包中應(yīng)包含哪些文件,起什么作用?
回答:采用ASCX開發(fā),皮膚包中應(yīng)包含至少一個ASCX文件和skin.css,一個與HTML同名的圖片文件,如果使用到圖片資源,還需要包括對應(yīng)的圖片。
ASCX文件聲明需要使用哪些功能標(biāo)簽以及描述各個功能標(biāo)簽的位置,例如:版權(quán)聲明放在什么位置; skin.xml 文件聲明皮膚包需要使用哪些功能標(biāo)簽;skin.css 是層疊樣式表文件,定義各種樣式;ASCX同名的圖片用于皮膚的預(yù)覽。
問題4:如何知道各個功能標(biāo)簽的含義?
回答:在DNN的技術(shù)文檔中,有一個專門講皮膚開發(fā)的文檔DotNetNuke Skinning Guide,它的附錄B專門描述了各個功能標(biāo)簽的含義。
問題5:我在HTML中可以寫contentpane:2嗎?為什么會出錯呢?
回答:可以直接把它實(shí)例化,例如寫成 X1contentpane 和 X2contentpane ....Xncontentpane。
問題很多,歡迎大家一起討論,我只是拋磚引玉,如果我的理解有什么偏差,希望各位斧正!非常感謝!




