DotText使用非80端口(默认端口)时URL出错
发现一个bug,使用80端口以外的端口提供WWW服务时,DotText生成的部分超级链接不会自动添加端口号。
例如:
网址:http://host:port/test/archive/2006/11/27/451.html
DotText生成的链接变成:http://host/test/archive/2006/11/27/451.html
端口(:port)被忽略了。
解决的办法在Dottext.Framework.Util.Globals.cs中,把:
return string.Format(AppUrl,request.Url.Host,app);
一律替换成:
return string.Format(AppUrl,host,app);
重新编译,OK!
说明:
其实在源代码已经有检测端口的代码:
string host=request.Url.Host;
if(!request.Url.IsDefaultPort)
{
host+=":"+request.Url.Port;
}
只是return语句采用旧的request.Url.Host变量,改一下就行。
如果没有上面代码,也可以手工加上。
例如:
网址:http://host:port/test/archive/2006/11/27/451.html
DotText生成的链接变成:http://host/test/archive/2006/11/27/451.html
端口(:port)被忽略了。
解决的办法在Dottext.Framework.Util.Globals.cs中,把:
return string.Format(AppUrl,request.Url.Host,app);
一律替换成:
return string.Format(AppUrl,host,app);
重新编译,OK!
说明:
其实在源代码已经有检测端口的代码:
string host=request.Url.Host;
if(!request.Url.IsDefaultPort)
{
host+=":"+request.Url.Port;
}
只是return语句采用旧的request.Url.Host变量,改一下就行。
如果没有上面代码,也可以手工加上。