开发环境:
服务器名称: |
SJ |
服务器操作系统: |
Microsoft Windows NT 5.1.2600 Service Pack 3 |
服务器IIS版本: |
.NET解释引擎版本: |
.NET CLR 2.0.50727.3603 |
|
Discuz!NT 3.0/3.1 |
跟踪发现:
Discuz.Forum\HttpModule.cs :
else if (requestPath.StartsWith(forumPath + "tools/"))
{
//当使用伪aspx, 如:showforum-1.aspx等.
if (config.Aspxrewrite == 1)
{
string path = requestPath.Substring(forumPath.Length + 5);
foreach (SiteUrls.URLRewrite url in SiteUrls.GetSiteUrls().Urls)
{
if (Regex.IsMatch(path, url.Pattern, Utils.GetRegexCompiledOptions()
| RegexOptions.IgnoreCase))
{
string newUrl = Regex.Replace(path, url.Pattern, Utils.UrlDecode(url.QueryString),
Utils.GetRegexCompiledOptions() | RegexOptions.IgnoreCase);
context.RewritePath(forumPath + "tools" + url.Page, string.Empty, newUrl);
return;
}
}
}
return;
}
问题原因:
凡是访问upload路径 就给重写,那上传的图片当然访问不到了导致camera.swf不能正确加载图片。
else if (requestPath.StartsWith(forumPath + "upload/") || requestPath.StartsWith(forumPath + "space/upload/") || requestPath.StartsWith(forumPath + "avatars/upload/"))
{
context.RewritePath(forumPath + "index.aspx");
return;
}
最简单的方法注释掉上段代码即可:
//else if (requestPath.StartsWith(forumPath + "upload/") || requestPath.StartsWith(forumPath + //"space/upload/") || requestPath.StartsWith(forumPath + "avatars/upload/"))
//{
// context.RewritePath(forumPath + "index.aspx");
// return;
//}
注:上传控件的多语言包在这个目录下
Discuz.Web\images\common\locale.xml