自定义aspnet_client的位置

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

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

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

1internal 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- 王朝網路 版權所有 導航