asp.netÖеÄResolveUrl ÍêÃÀ½â¾ö·½°¸
¸ù¾ÝÎÒ¸öÈËʹÓÃASP.NETµÄ¾Ñ飬ºÍͨ¹ýÔÚÍøÉÏËÑË÷¡£ÎÒ·¢ÏÖ£¬PageµÄResolveUrl·½·¨¸øÎÒÃÇ´øÀ´ÁËһЩ±È½ÏÑÏÖØµÄÎÊÌâ¡£
×î³£¼ûµÄÎÊÌâÊÇÔÚÒ³Ãæ»ò¿Ø¼þÒÔÍâµÄ·¶Î§²»ÄÜʹÓÃËü¡£
ÆäËûµÄÎÊÌâ¶¼ÊÇbug¡£ÈçËü²»ÄÜÕýÈ·´¦ÀíһЩÄã¸øµÄURL¡£ÀýÈ磬³¢ÊÔ Page.ResolveUrl("~/test.aspx?param=http://www.test.com")¡£½á¹ûÓëÄãÊäÈë×Ö·û´®Ïàͬ£¬Ã»×öÈκα䶯¡£Ê¹ÓÃReflector²é¿´asp.net´úÂ룬ÎÒ·¢ÏÖ½«Ïà¶ÔURLת»»Îª¾ø¶ÔURL»úÖÆ¶¼ÊÇÏÈËÑË÷stringÖÐµÄ "://"£¬Èç¹ûÕÒµ½£¬¾ÍÖ±½Ó·µ»ØÁË¡£Òò´Ë£¬Èç¹ûÄã´«µÝÒ»¸ö´ø://µÄ²ÎÊý£¬²éѯ×Ö·û´®¾ÍÊÇOKµÄ¡£ÎÒÃǶ¼ÖªµÀµÄ²éѯ×Ö·û´®²ÎÊýÓ¦½øÐÐurlencode£¬µ«Èç¹ûûÓУ¬ËüÓ¦¸ÃÈÔÈ»ÊÇ¿ÉÒÔ½ÓÊÜURL¡£ÑÏÖØµÄÊÇ£¬Òª¼ì²éÄúµÄä¯ÀÀÆ÷¡£
ÍøÉÏ£¬½¨ÒéµÄ·½·¨ÊÇʹÓÃVirtualPathUtility.ToAbsolute£¬Èç¹ûÄãÔÚ´«µÝURL×÷Ϊ²éѯ×Ö·û´®£¬ÕâÊÇÏ൱²»´íºÍ·½±ãµÄ£¬...·ñÔò£¬¾Í»áÒý·¢Òì³£¡£Èç¹ûÊÇÒ»¸ö¾ø¶ÔURL£¬ËüÒ²»áÅ׳öÒì³££¡
ËùÒÔ£¬ÎÒ¾ö¶¨Ñ°ÇóÒ»¸ö×îÖÕ½â¾ö·½°¸¡£
Ê×ÏÈ£¬ÎÒÒªÕÒËÑË÷Ò»¸öºÜºÃµÄ±äÁ¿£¬ËüÄܸøÎÒÃÇÔÚÓ¦ÓóÌÐòÔËÐÐʱµÄÐéÄâ·¾¶£¬²»Ê¹ÓÃÒ³ÃæÉÏÏÂÎÄ¡£
ÎÒʹÓÃÁËHttpRuntime.AppDomainAppVirtualPath¡£ËüÄÜÔÚÈκεط½Ê¹ÓÃ-ÉõÖÁÔÚtimer callbackÖУ¡ËüûÓÐÎ²ËæÐ±Ïß·¾¶£¬ASP.NET×÷ÁËÌØËØ´¦Àí£¬Ïû³ýб¸Ü£¬²»¹ý£¬ÎÒÃÇÄÜÐÞ¸´Ëü:-)
È»ºó£¬ÎÒʹÓÃÔResolveUrl´úÂë×öÁËһЩ²âÊÔ£¬ÕÒµ½ÔõôÓÃAppVirtualPathÈ¡´ú£º
1¡¢µ±URLÒÔбÏß¿ªÊ¼£¨/»ò\£©£¬Ò²²»»á¸Ä¶¯Ëü£¡
2¡¢µ±URLÒÔ〜/¿ªÊ¼£¬Ëü»á±»AppVirtualPathÈ¡´ú¡£
3¡¢µ±URLÊÇÒ»¸ö¾ø¶ÔURL£¬Ò²²»»á¸Ä±äËü¡£
4¡¢ÔÚÈÎºÎÆäËûÇé¿öÏ£¨ÉõÖÁÒÔ〜¿ªÊ¼£¬¶ø²»ÊÇб¸Ü£©£¬½«×·¼ÓURLµ½AppVirtualPath¡£
5¡¢Ã¿µ±ËüÐÞ¸ÄURL£¬»¹ÐÞ¸´Ð±¸Ü¡£É¾³ý˫бÏߣ¬ÓÃ/Ìæ»»\¡£
´úÂ룺
´úÂë
public static string ResolveUrl(string relativeUrl)
{
if (relativeUrl == null) throw new ArgumentNullException("relativeUrl");
if (relativeUrl.Length == 0 || relativeUrl[0] == '/' ||
relativeUrl[0] == '\\') return relativeUrl;
&
Ïà¹ØÎĵµ£º
web.config
<customErrors mode="On" defaultRedirect="ApplicationErroy.aspx" >
<error statusCode="403" redirect="403.htm"/>
<error statusCode="404" redirect="404.htm"/>
<error statusCode= ......
·Ï»°²»Ëµ£¬Ö±½Ó´úÂ벿·Ö´úÂëÕª³×ÔÍøÉÏ£¬ÔÚ´ËÏëÔ×÷Õß±íʾ¸Ðл
1¡¢·þÎñ¶Ë uploadFile.ashx
<%@ WebHandler Language="VB" Class="UploadFile" %>
Imports System
Imports System.Web
Imports System.Web.HttpServerUtility
Imports System.IO
Imports System.Web.HttpRequest
Public Class UploadFile : Impl ......
1. ͼƬÎÊÌâ
·Ç³£ºÃ½â¾ö
<img runat="server" src="~/images/ad468x60.gif" alt="" />
¼ÓÉÏrunat="server" £¬Â·¾¶Ê¹Óþø¶Ô·¾¶~/»ù±¾ÉϾÍOKÁË¡£
2. CSSÎļþÒýÓÃ
<link rel="stylesheet" type="text/css" href="style.css" />
ÕâÀïÉñÆæµÄ¾ÍÊÇlinkµÄÎļþµÄhrefÊÇËæ×ű»·ÃÎÊÎļþµÄĿ¼½á¹¹×Ô¶¯µ÷Õû£¬Ëµ°×Á˾ ......
ÒòΪ¹«Ë¾µÄ²úÆ·ÓÃasp¿ª·¢£¬ ǰһ¶Îʱ¼äÓÃaspдÁËÒ»¸öÉú³É¾²Ì¬Ò³Ãæ²¢·ÖÒ³µÄ³ÌÐò£¬µ«ÔµÓÚ¶Ô.netµÄÈȰ®£¬Ð´ÁËÕâ¸ö.netϵÄÉú³É¾²Ì¬Ò³Ãæ²¢·ÖÒ³µÄ³ÌÐò¡£
Ö÷ÒªµÄÔÀí¾ÍÊÇÌæ»»Ä£°åÀïµÄÌØÊâ×Ö·û¡£
1¡¢¾²Ì¬Ä£°åÒ³Ãæ template.html£¬Ö÷ÒªÊǶ¨ÒåÁËÒ»Ð©ÌØÊâ×Ö·û£¬ÓÃÀ´±»Ìæ»»¡£
<!DOCTYPE HTML PUBLIC "-//W3C//DTD ......
ʲôÊÇCache¶ÔÏó?
ÄãÔÚÉú³É¸ßÐÔÄÜÍøÂçÓ¦ÓóÌÐòʱËùÓöµ½µÄÒ»¸öÎÊÌâ¾ÍÊÇÐèÒª±ÜÃâÖØ¸´¡£Ò»¸öCache¶ÔÏóÔÊÐíÔÚËüÃǵÚÒ»´Î±»ÇëÇóʱÔÚÄÚ´æÖлº´æÏȻºó½«±»»º´æµÄ¸±±¾ÓÃÓÚÒÔºóµÄÇëÇó¡£Ê¹Óñ»»º´æµÄ¸±±¾ÔÊÐíÄã±ÜÃâÖØ½¨Âú×ãÒÔǰÇëÇóµÄÐÅÏ¢£¬ÌرðÊÇÄÇЩÿ´Î´´½¨Ê±¶¼ÐèÕ¼ÓÐÃ÷ʾµÄ·þÎñÆ÷ÉϵĴ¦ÀíÆ÷ʱ¼äµÄÃüÁî¡£
³ý»º´æ¸ö±ðÏÈç» ......