虽然接触DNN有一段时间了,不过在皮肤的应用和制作上还是存在一定的误区的,所以把经验以问答形式写出来,希望能对后来的人有所帮助吧!
如有任何问题,欢迎到www.dnngo.com发帖讨论!
应用部分:
问题1:DNN皮肤是什么?
回答:DNN皮肤,简单来说,就是网站的外观,通过皮肤技术,你可以轻而易举地为你的网站更换外观。皮肤的引入,让你可以无需具备美工知识,也可以建立一个漂亮的站点,因为你可以到一个皮肤网站下载你喜欢的皮肤,然后加载到你的站点,如同买衣服来穿那么方便。
问题2:一个网站只能使用一个DNN皮肤吗?
回答:一个网站可以使用多个,甚至多套皮肤,每个网页都可以对应一个皮肤,这个皮肤可以是来自主机或站点的多套皮肤。
问题3:如何为每一个网页指定一个皮肤呢?
回答:以管理员身份登录,然后打开想要指定的皮肤样式的页面,点“编辑”,进入编辑状态,点“高级设定”,在“页面皮肤”中选择你需要的皮肤,然后保存,就完成设置了。
问题4:DNN容器是什么?
回答:简单来说,DNN容器就是DNN模块的皮肤。
问题5:网站的模块都只能使用同一个DNN容器吗?
回答:网站的模块可以对应一个容器,这个容器可以是来自主机或站点的多套容器。
问题6:如何为每一个模块指定一个容器呢?
回答:以管理员身份登录,然后点击相应模块的“设置”,进入设置状态,点“页面设置”,在“模块窗口”中选择你需要的容器,然后保存,就完成设置了。
开发部分:
问题1:皮肤是用HTML开发还是用ASCX开发?
回答:皮肤既可以HTML开发也用ASCX开发。根据我的观察,DNN生成皮肤的机制是这样的,先检查皮肤包里有没有HTML,如果有,对它执行转换,这个转换是把HTML和skin.xml组合,生成ASCX,如果没有,它就提取ASCX,所以最终结果是一样的。DNN实际使用的,都是ASCX。
问题2:如果采用HTML开发,皮肤包中应包含哪些文件,起什么作用?
回答:采用HTML开发,皮肤包中应包含至少一个HTML文件和skin.xml,skin.css,一个与HTML同名的图片文件,如果使用到图片资源,还需要包括对应的图片。
HTML文件描述各个功能标签的位置,例如:版权声明放在什么位置; skin.xml 文件声明皮肤包需要使用哪些功能标签;skin.css 是层叠样式表文件,定义各种样式;HTML同名的图片用于皮肤的预览。
问题3:如果采用ASCX开发,皮肤包中应包含哪些文件,起什么作用?
回答:采用ASCX开发,皮肤包中应包含至少一个ASCX文件和skin.css,一个与HTML同名的图片文件,如果使用到图片资源,还需要包括对应的图片。
ASCX文件声明需要使用哪些功能标签以及描述各个功能标签的位置,例如:版权声明放在什么位置; skin.xml 文件声明皮肤包需要使用哪些功能标签;skin.css 是层叠样式表文件,定义各种样式;ASCX同名的图片用于皮肤的预览。
问题4:如何知道各个功能标签的含义?
回答:在DNN的技术文档中,有一个专门讲皮肤开发的文档DotNetNuke Skinning Guide,它的附录B专门描述了各个功能标签的含义。
问题5:我在HTML中可以写contentpane:2吗?为什么会出错呢?
回答:可以直接把它实例化,例如写成 X1contentpane 和 X2contentpane ....Xncontentpane。
问题很多,欢迎大家一起讨论,我只是抛砖引玉,如果我的理解有什么偏差,希望各位斧正!非常感谢!