MonoRail配置
MonoRail配置
1.webConfig
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section
name="monorail"
type="Castle.MonoRail.Framework.Configuration.MonoRailSectionHandler, Castle.MonoRail.Framework" />
</configSections>
<monorail useWindsorIntegration="true|false"
checkClientIsConnected="true|false"
smtpHost=""
>
<controllers>
<assembly>ProjectAssembly</assembly>
</controllers>
<!--
Custom Factories should be configured on the services node.
The following is supported to be backward compatible
-->
<customControllerFactory type="type name that implements IControllerFactory" />
<customComponentFactory type="type name that implements IComponentFactory" />
<customFilterFactory type="type name that implements IFilterFactory" />
<!-- <controllers>
<assembly>AssemblyName1</assembly>
<assembly>AssemblyName2</assembly>
</controllers> -->
<viewcomponents>
<assembly>AssemblyName1</assembly>
<assembly>AssemblyName2</assembly>
</viewcomponents>
<!--
设置模板引擎 要解释的根目录
-->
<viewEngine
viewPathRoot="views"
customEngine="ViewEngine.Type.Name, Assembly">
<additionalSources>
<assembly name="" namespace="" />
<assembly name="" namespace="" />
</additionalSources>
</viewEngine>
<!-- List of services ids:
Custom
ControllerFactory
ViewEngine
ViewSourceLoader
ViewComponentFactory
FilterFactory
ResourceFactory
EmailSender
ControllerDescriptorProvider
ResourceDescriptorProvider
RescueDescriptorProvider
LayoutDescriptorProvider
HelperDescriptorProvider
FilterDescriptorProvider
EmailTemplateService
ControllerTree
CacheProvider
ScaffoldingSupport
-->
<services>
<service
id="[see list above]"
type="Service.Type.Name, Assembly"
interface="optional" />
</services>
<extensions>
<extension type="Extension.Type.Name, Assembly" />
<extension type="Extension.Type.Name, Assembly" />
</extensions>
<!--routing节点下可以设置Url重写规则,如符合(/blog/posts/)("d+)/("d+)/(.)*$<规则将被跳转到/blog/view.rails?year=$2&month=$3 页面去
$1表示()出现的位置
-->
<routing>
<rule>
<pattern>(/blog/posts/)("d+)/("d+)/(.)*$</pattern>
<replace><![CDATA[ /blog/view.rails?year=$2&month=$3 ]]></replace>
</rule>
<rule>
<pattern>(/news/)("d+)/("d+)/(.)*$</pattern>
<replace><![CDATA[ /news/view.rails?year=$2&month=$3 ]]></replace>
</rule>
</routing>
</monorail>
<system.web>
<!-- ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
ASP.NET HTTP 处理程序是响应对 ASP.NET Web 应用程序的请求而运行的过程(通常称为“终结点”)。
最常用的处理程序是处理 .aspx 文件的 ASP.NET 页处理程序。用户请求 .aspx 文件时,页通过页处理程序来处理请求。
--------
同理:这里的配置节通知 所有*.rails文件的请求将由MonoRailHttpHandlerFactory来进行处理
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
-->
<httpHandlers>
<add
verb="*"
path="*.rails"
type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory, Castle.MonoRail.Framework" />
</httpHandlers>
<!-- ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
这里配置Aps.net中的HttpModula由Castle.MonoRail接管
×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× -->
<httpModules>
<add
name="monorail"
type="Castle.MonoRail.Framework.EngineContextModule, Castle.MonoRail.Framework" />
</httpModules>
</system.web>
</configuration>
2.IIS
在ISAPI扩展中添加 *.rails 扩展
3.Nevlocity配置
webconfig
设置模板根目录, viewPathRoot="views" 表示模板文件存放于根目录下的Views文件夹中
模板文件扩展名均以 *.vm
<viewEngine
viewPathRoot="views"
customEngine="Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine, Castle.MonoRail.Framework.Views.NVelocity" />
</viewEngine>
解决模板解析输出后的乱码问题:需在申明的目录下 创建文件 nvelocity.properties
文件内容为:input.encoding=GB2312 或 input.encoding= utf-8 (如果web站点为Application方式时,需将文件属性 设置为 “嵌入资源”)
output.encoding=GB2312 output.encoding= utf-8