getting base url of web site's root (absolute/relative url)

前端 未结 1 438
南笙
南笙 2021-01-02 17:19

I want to completely understand how to use relative and absolute url address in static and dynamic files.

~  : 
/  :
.. : in a relative URL indicates the par         


        
相关标签:
1条回答
  • 2021-01-02 17:47

    The ~ operator is recognized by asp.net only for server controls and in server code. You cannot use the ~ operator for client elements.

    Absolute and relative path references in a server control have the following disadvantages:

    •Absolute paths are not portable between applications. If you move the application that the absolute path points to, the links will break.

    •Relative paths in the style of client elements can be difficult to maintain if you move resources or pages to different folders.

    To overcome these disadvantages, ASP.NET includes the Web application root operator (~), which you can use when specifying a path in server controls. ASP.NET resolves the ~ operator to the root of the current application. You can use the ~ operator in conjunction with folders to specify a path that is based on the current root.

    As for the example you posted

    aspxImgCtrl.ImageUrl = Server.MapPath("~")+"/Images/GIF/arrow.png";
    

    the above code will render the server physical path (for example - c:\inetpub\wwwroot\mysite\images\gif\arrow.png" which is meaning less on the client side,

    you should use this for correct client relative path:

    aspxImgCtrl.ImageUrl = "~/Images/GIF/arrow.png"; 
    

    To reference resources from javascript you may want to consider a one level folders structure to unify access paths. for example:

    • Pages
    • JS
    • Pix
    • etc...

    For more details visit asp.net web site paths

    0 讨论(0)
提交回复
热议问题