自定义aspnet_client的位置

王朝asp·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

有人发帖问“aspnet_client必须放在web根目录吗?怎样改变这个路径?”

我一开始猜想这个路径可能是硬编码的。为了证实一下,就打开了Reflector,试图寻找到类似"/aspnet_client/system_web/1_1_4322/"的字符串,却发现这个目录的位置是可以自定义的,但是MSDN中没有公开。相关代码在System.Web.UI.Util.GetScriptLocation(HttpContext)中,

1

internal static string GetScriptLocation(HttpContext context)

2

...{

3

string text1 = null;

4

IDictionary dictionary1 = (IDictionary) context.GetConfig("system.web/webControls");

5

if (dictionary1 != null)

6

...{

7

text1 = (string) dictionary1["clientScriptsLocation"];

8

}

9

if (text1 == null)

10

...{

11

throw new HttpException(HttpRuntime.FormatResourceString("Missing_clientScriptsLocation"));

12

}

13

if (text1.IndexOf("{0}") >= 0)

14

...{

15

string text2 = "system_web";

16

string text3 = VersionInfo.IsapiVersion.Substring(0, VersionInfo.IsapiVersion.LastIndexOf('.')).Replace('.', '_');

17

text1 = string.Format(text1, text2, text3);

18

}

19

return text1;

20

}

然后再machine.config中找到了默认的配置:

<webControls clientScriptsLocation="/aspnet_client/{0}/{1}/" />

当然也可以在web.config中针对单个应用程序进行配置。如果要把aspnet_client目录放在根目录下的myweb中,那么就在web.config文件的

<configuration>

<system.web>

标签内加上这么一句:

<webControls clientScriptsLocation="/myweb/aspnet_client/{0}/{1}/" />

或者直接写

<webControls clientScriptsLocation="/myweb/aspnet_client/system_web/1_1_4322/" />

就可以了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航