JavaScript脚本标记中的绝对路径

use*_*080 15 javascript asp.net script-tag

声明标签时是否有绝对路径?

如果我在一个文件夹(一个级别)脚本中有一个aspx页面,这将解决 src="../Scripts/jquery-1.4.1.js" type="text/javascript">

如果我在一个文件夹(两级)脚本中有一个aspx页面,这将解决 src="../../Scripts/jquery-1.4.1.js" type="text/javascript">

如果我在主根脚本中有一个aspx页面,这将解决 src="Scripts/jquery-1.4.1.js" type="text/javascript">

我真的需要为每个相对路径创建不同的版本吗?

Dan*_*llo 25

您可能希望使用域根目录中的相对路径:

<script src="/Scripts/jquery-1.4.1.js" type="text/javascript">
Run Code Online (Sandbox Code Playgroud)

  • @ronald-yoh:如果`Scripts` 位于您的域根目录中,则应该这样做:) ... 注意:如果您的`Scripts` 文件夹位于`http://your-domain.com/mysite/Scripts/`,则你必须使用`src="/mysite/Scripts/jquery-1.4.1.js"`。但是,如果您的`Scripts` 位于`http://your-domain.com/Scripts/`,那么我的答案中的示例应该这样做。 (2认同)

Chr*_*tow 11

对于ASP.NET MVC,在视图中使用Url.Content("〜/ Scripts/jquery-1.4.1.js").代字号使您的路径相对于应用程序根目录,如果您作为IIS虚拟应用程序运行,则可以是子文件夹.

如果是WebForms,请在页面中尝试Page.ResolveUrl()VirtualPathUtility.ToAbsolute().

(顺便说一句,您可能还想考虑从CDN加载jQuery)


Gor*_*vic 5

在webforms应用程序中引用脚本和css文件时,请使用

"<%=ResolveUrl("~/path/file.ext") %>"

这类似于"@Url.Content("~/path/file.ext")"MVC,并且将用应用程序基本路径替换〜(应用程序根目录),无论它是服务器上的根应用程序还是某个虚拟目录中的根应用程序.如果您使用绝对路径(/path.file.ext),当您的应用程序位于网站的根目录时,它可能适合您,但当您将其移动到虚拟目录时,它可能会停止解析资源.