您现在的位置: 365建站网 > 365文章 > Oxite分析之Skinning

Oxite分析之Skinning

文章来源:365jz.com     点击数:402    更新时间:2009-09-17 10:31   参与评论

change set:42944

download :http://oxite.codeplex.com/SourceControl/ListDownloadableCommits.aspx


Oxite中可以非常方便的切换皮肤(Skinning),并且前台皮肤(Site Skin)和后台皮肤(Admin Skin)都可以切换。Oxite的皮肤包括三部分:CSS + images, scripts and views。注意这个views就是MVC中的View部分,这样就带来更大的灵活性。这里提一下,Skin的设置会影响到ViewEngine在什么位置搜索View文件。官方也有关于Skinning的介绍,不太详细:http://oxite.codeplex.com/Wiki/View.aspx?title=Skinning

一、设置Skin

在Oxite管理后台的站点设置里可以设置前台和后台皮肤。进入后台点击"Settings"菜单下的"Site"子菜单,进入"Edit Site"页面:

222 

在Skins Path字段中设置存放各个Skin的总目录,默认值是/Skins。注意这个路径是虽然是绝对路径,但它是站点所在虚拟目录的根目录下的Skins目录,也就是说/Skins实际上对应的是~/Skins。

假设HomeController下的Index这个Action的View的搜索,
Skins Path 字段值不为空时并且Site Skin(或Admin Skin)为空时,将会搜索~/Skins/Views/Home/和~/Skins/Views/Shard/目录;如果搜索不到,将会搜索~/Views/Home/和~/Views/Shard/目录。

注意:目前Oxite版本尚未支持Scripts Path和Styles Path字段,也就是说你的设置将暂时不会有效果。我通过源码分析的,尚未测试设置过。

Site Skin是用来设置具体的Skin的,默认为空。这种情况下,可以回头看看我们分析Skins Path字段时所说的。我们如果直接把根目录的Styles、Scripts、Views这三个目录移到Skins目录下,站点将一切正常。

如果我们为Site Skin设定一个值的话,比如MySkin。在不移动官方源码的情况下,站点不会有任何变化;我们如果直接把根目录的Styles、Scripts、Views这三个目录移到Skins目录下,站点将仍然正常;如果我们在Skins目录下建立一个MySkin目录,把根目录的Styles、Scripts、Views这三个目录移到该目录下,站点将仍然仍然正常。为什么呢?原因是Site Skin设定一个值后,ViewEngine搜索Views时候,只是多了两个搜索路径。比如HomeController下的Index这个Action,将会首先搜索:~/Skins/MySkin/Views/Home/和~/Skins/MySkin/Views/Shard/,如果搜索不到,将会搜索~/Skins/Views/Home/和~/Skins/Views/Shard/目录;如果还是搜索不到,将会搜索~/Views/Home/和~/Views/Shard/目录。

另外,如果Skins Path 字段设置为空,Site Skin字段设置为MySkin。在这种情况下,View搜索的路径是这样的:
~/MySkin/Views/Home/ –> ~/MySkin/Views/Shard/ –> ~/Views/Home/ –> ~/Views/Shard/

Skins Path 字段和Site Skin字段是可以设置为更复杂的路径,我觉得完全没必要。参考Oxite默认的配置,Skins目录下放置各种Skins已经足够用了。

二、Oxite如何实现Skinning


待续…

三、其他相关
Grouping Controllers with ASP.NET MVC
http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx

支持Area的ControllerFactory
http://www.cnblogs.com/JeffreyZhao/archive/2009/08/20/controller-factory-with-area-supporting.html

Tag标签: ASP.NET MVC,Oxite

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (402人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号