Mvc示例之六---bs软件的路径

来源:互联网 发布:天龙八部清风怡江美工 编辑:程序博客网 时间:2024/06/05 13:48

相对路径与绝对路径

      相对路径是相对于文件或文件夹当前路径而言,绝对路径则是从路径的根部到达目标文件。

  举个例子:

  C:\Windows\Microsoft.NET\Framework文件夹下面有一个文件:sbs_microsoft.jscript.dll,而C:\Windows\Microsoft.NET\Framework\v3.5文件夹下面有一个文件csc.exe。

      我们通过sbs_microsoft.jscript.dll所在的文件夹找到csc.exe所在的文件夹可以有相对路径与绝对路径两种方式。如果用相对路径C:\Windows\Microsoft.NET\Framework\v3.5这个文件夹则应该表示为:.\v3.5,绝对路径则表示为C:\Windows\Microsoft.NET\Framework\v3.5。理解相对路径时要找一个参照路径,而绝对路径则不必。在此,我们的参照路径是:C:\Windows\Microsoft.NET\Framework。

      描述相对路径是有两个概念很有用,当前路径与父路径。当前路径用句点”.”来表示,父路径则用两个句点”..”表示。如上边实例,相对于C:\Windows\Microsoft.NET\Framework\v3.5,C:\Windows\Microsoft.NET\Framework\路径用相对路径表示为..\。也可以表示为.\..\,.\省略是可以的。那么,相对于C:\Windows\Microsoft.NET\Framework\v3.5路径C:\Windows\路径表示为..\..\..\。第一层父路径到C:\Windows\Microsoft.NET\Framework(..\),第二层到C:\Windows\Microsoft.NET(..\..\),第三层到C:\Windows(..\..\..\)。

       绝对路径与相对路径的用处:既然绝对路径理解起来简单,那么为什么要用相对路径呢?因为程序的运行环境是变动的。比如某个程序原来在c:\temp\abc这个路径下运行,他要打开c:\temp\abc\a.txt。如果用绝对路径,要用c:\temp\abc\a.txt表示。如果我现在把程序拷贝到了c:\temp2,那么a.txt的绝对路径就变成了c:\temp2\a.txt。这个时候是否要更改程序呢?有一种方法是找到程序的运行路径。另一种方法则可以直接用行对路径 a.txt或者.\a.txt。岂不是很简单?

BS软件路径

在BS软件中也有绝对路径与相对路径的概念。在Asp.net中要表示根路径有两个不同的概念:

“/”与”~/”。这两个写法有什么区别呢?

/ 表示网站的根路径

~/ 表示应用程序的根路径

我们架设如下一个网站:

图一、IIS网站

     对于admin应用程序,假设他的主页是Default.aspx,那么该文件的绝对路径是

http://localhost/admin/Default.aspx,用 “/”表示http://localhost “~/”则表示http://localhost/admin  。要表示文件,需要用这两个根路径来表示。如上述Default.aspx可以表示为“~/Default.aspx”或者”/admin/Default.aspx”。如果我们要表示图中admin应用程序下面的文件最好用”~/”这个根路径。而如果我们要表示Django这个应用程序或者根网站下面的文件就要用“/” 这个根路径。

    而如果admin 这个应该程序的文件夹下面的文件夹 Content下面有 css 与 images 这两个文件夹如下图:

 

图二、文件夹示例

       假设我们在/admin/Content/css下面有一个文件叫做Sites.css文件,他要引用images文件下面的图片 abc.gif应该怎样写呢?

可以这样写:../images/abc.gif 。对这个路径解析一下:.当前路径为/admin/Content/css。../表示./的上层路径 /admin/Content ;../Images/ 表示/admin/Content/images,最后填写上文件名:abc.gif。

        最后总结一下,在文件中引用其他文件,一定相对于本文件所在的路径;即使这个文件被其他文件应用。(此段错误)

       上次发布本博客时,出现了错误。其实css文件被认为是一个独立的文件,而js文件则是一个引入文件。因此css文件引用其他文件时,路径相对于css文件所在路径来引用。而js文件在写其他文件路径时,则是相对于aspx等主文件路径而言。比如Sites.css可能被Default.aspx引用,那么Sites.css要引用图片文件也是相对于sites.css所在的路径。在此例中,js写文件路径时,要相对于Default.aspx所在路径进行引用。

       上面的abc.gif用绝对路径怎么表示:/admin/Content/images/abc.gif  ~/Content/images/abc.gif。

Mvc路径的特殊之处

    在mvc中应用~/相对路径时,需要进行一下转换

如下:

<script  src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")"   type="text/javascript"></script>

或者可用用

<script    src="@Href("~/Scripts/jquery-1.7.2.min.js")"   type="text/javascript"></script>

 

    这两种写法都是可以的。

    而Mvc在表示一个action方法的路径时可以用两种方式。

   如果两个页面在同一个Controller下面,可以用@Url.Action(“Actionname”)  表示。而如果两个页面不在同一个controller下面,则要用@Url.Action(“actionname”,”controller name”)表示了。

好了,本节就讲到这里。Mvc示例系列就讲完了。